为了账号安全,请及时绑定邮箱和手机立即绑定

我这代码是不是太繁冗了? 80多行。

#include <stdio.h>

int Sort(int arr[])   //成绩降序

{

    int i,j ;

    printf("成绩降序排序为:\n");

    for(i=9;i>=0;i--)

    {

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

        {

            if(arr[j]>arr[j+1])

            {

                int sum;

                sum=arr[j];

                arr[j]=arr[j+1];

                arr[j+1]=sum;

            }

        }

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

    }

    return 0;

}

int Total(int arr[])  //总分

{

    int i,j;

    static int sum;

    for(i=9;i>=0;i--)

    sum=arr[i]+sum;

    printf("成绩的总分是: %d",sum);

    return sum;

}

int average(int arr[]) //平均分

{

    int i;

    static int j;

    int sum;

    for(i=9;i>=0;i--)

    j=arr[i]+j;

    sum=j/10;

    printf("成绩的平均分是: %d",sum);

}

int Max(int arr[]) //最高分

{

    int i,j;

    int sum=0;

    for(i=9;i>=0;i--)

    {

        if(arr[i]>sum)

        {

            sum=arr[i];

        }

    }

    printf("成绩的最高分是: %d",sum);

    return 0;

}

int Min(int arr[]) //最低分

{

    int i,j;

    int sum;

    sum=arr[1];

    for(i=9;i>=0;i--)

    {

        if(arr[i]<sum)

        {

            sum=arr[i];

        }

    }

    printf("成绩的最低分是: %d",sum);

    return 0;

}


int main()

{

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

    Sort(score);

    printf("\n");

    Total(score);

    printf("\n");

    average(score);

    printf("\n");

    Max(score);

    printf("\n");

    Min(score);

    printf("\n");

    return 0;

}


正在回答

2 回答

#include <stdio.h>

//我的稍微合并了下54行

//总分

int Total(int score[])

{

    int total;

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

    {

        total += score[i];

    }

    return total;

}


//降序排序

void Sort(int score[])

{

    int temp;

    for (int i=9;i>=0;i--)

    {

        for (int j=0;j<i;j++)

        {

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

            {

                temp = score[j];

                score[j] = score[j+1];

                score[j+1] = temp;

            }

        }

    }

}

int main()

{

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

    //降序排列

    Sort(score);

    printf("降序排列\n");

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

    {

        if (i!=9)

        {

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

        }

        else

        {

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

        }

    }

    int max = score[0];

    int min = score[9];

    int total = Total(score);

    float avg = total/10;

    printf("最高分:%d\n最低分:%d\n总分:%d\n平均分:%.2f\n",max,min,total,avg);

    return 0;

}


0 回复 有任何疑惑可以回复我~

你可以先降序排序之后再求最大最小值

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这代码是不是太繁冗了? 80多行。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信