问答详情
源自:6-12 综合练习

救救我吧= =

#include <stdio.h>


int totalScore(int score[], int N)

{

int i;

int sum = 0;

for (i = 0; i < N; i++)

{

sum += score[i];

}

return sum;

}


int maxScore(int score[], int N)

{

int j;

int max = score[0];

for (j = 0; j < N - 1; j++)

{

if (score[j + 1] > max)

max = score[j + 1];

}

return max;

}


int minScore(int score[], int N)

{

int k;

int min = score[0];

for (k = 0; k < N - 1; k++)

{

if (score[k + 1] < min)

min = score[k + 1];

}

return min;

}


int averageScore(int score[], int N)

{

int Sum = *totalScore;

int average = Sum / N;

return average;

}


int descendingScore(int score[], int N)

{

int m, temp;

for (m = 0; m < N - 1; m++)

{

if (score[m + 1] < score[m])

{

temp = score[m];

score[m] = score[m + 1];

score[m + 1] = temp;

printf("%d\n", score[m]);

}

else

{

printf("%d\n",score[m]);

}

}


return 0;

}


int main()

{

int score[10] = { 67,98,75,63,82,79,81,91,66,84 };

totalScore(score, 10);

maxScore(score, 10);

minScore(score, 10);

averageScore(score, 10);

descendingScore(score, 10);

getchar();

return 0;

}


提问者:gadada 2019-04-01 21:27

个回答

  • 小帽纸
    2019-04-01 23:27:13
    已采纳

    写的代码过于散;

    不需要定义太多函数,定义一个函数就够了,

    在定义的内部函数里面求出最大值,最小值,降序与,

    定义整个数组作为参数处理(在数组第二章以写有),

    在定义的函数里面我们定义整型的最大值、最小值、均值、sum的变量名,

    先考虑遍历降序排序,然后我们可以求出最大值在第一位,最小值在最后一位,

    而总值可以用for循环遍历加到之前定义的sum变量名里面,

    而均值我们可以用总值/10,都可以在定义的内部函数里输出,在主函数中我们只调用一维数组到自定义的函数里,自定义函数中直接输出就好

    总结:写代码前先考虑好,代码的可读性,灵活性,可修改性

    代码如下:

    #include <stdio.h>

    int L(int s[]) //处理整个数组

    {

        int max=0;

        int min=0;

        int sum=0;

        int v=0;

        int i,j,t;

        for(i=0;i<10;i++)

        {

            t=1;   //此不做赘述

            for(j=0;j<10-1-i;j++)

            {

                if(s[j]<s[j+1])  //降序 < 从大到小

                {

                    s[j]+=s[j+1];

                    s[j+1]=s[j]-s[j+1];  //比较调换位置

                    s[j]-=s[j+1];

                    t=0;  //此不做赘述

                }

            }

            if(t)break;//此不做赘述

        }

        for(i=0;i<10;i++)

        {

            sum+=s[i];   //循环求出总值

        }

        printf("sum=%d\n",sum);

        max=s[0];

        min=s[9];

        v=sum/10;

        printf("max=%d\n",max);

        printf("min=%d\n",min);

        printf("v=%d\n",v);

        for(i=0;i<10;i++)

        {

            printf("%d ",s[i]);

        }

    }

    int main()

    {

        int score[]={67,98,75,63,82,79,81,91,66,84};

        L(score);   //调用函数

        return 0;

    }