一个简单的C程上机作业,但我啥都不会。。。求大神

【问题描述】从键盘输入10个整数成绩到一个数组中,找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。

【输入形式】屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。

【输出形式】先依输入的顺序输出数组初始的10个数,任务完成后再依次输出这10个数。输出时用一个空格分隔数据。
【样例输入】

Input NO1 score:56

Input NO2 score:68

Input NO3 score:91

Input NO4 score:63

Input NO5 score:74

Input NO6 score:88

Input NO7 score:45

Input NO8 score:99

Input NO9 score:78

Input NO10 score:83

【样例输出】

========primary data========

56 68 91 63 74 88 45 99 78 83

======== data exchange========

45 56 91 63 74 88 68 99 78 83

【样例说明】

下划线上是输入的数据,文字是程序给出的输出前提示信息

输出初始的10个数据前加提示文字========primary data========(两侧各8个=)

输出结果的10个数据前加提示文字======== data exchange========(两侧各8个=)

【评分标准】满分100分。

#include<stdio.h>

//选择排序
void SelectSort(int arr[],int n,int m)
{
    int i,j,k,temp;
    for(i=0;i<n;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(arr[j]<arr[k] && arr[j] < m) k = j;
        }
        if(k>i)
        {
            temp = arr[i];
            arr[i] = arr[k];
            arr[k] = temp;
        }
    }
}

int main()
{
    int i,j,score[10];

    for(i=0;i<10;i++)
    {
        printf("Input NO%d score:",i+1);
        scanf("%d",&score[i]);
    }

    printf("\n");
    printf("======== primary data ========");
    printf("\n");
    for(i=0;i<10;i++)
    {
        printf("%d ",score[i]);
    }

    printf("\n");
    printf("======== data exchange ========");
    printf("\n");
    SelectSort(score,10,60);
    for(i=0;i<10;i++)
    {
        printf("%d ",score[i]);
    }
}

温馨提示:答案为网友推荐,仅供参考
相似回答