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

平均分大了一倍那样,希望大佬解答

#include <stdio.h>

int sum = 0.00;

int max;

int min;

double maen;

int i;

int j;

int summation(int score[])

{

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

    {

        sum += score[i];

    }

    return sum;

}

int maximal(int score[])

{

    max = score[0];

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

    {

        if(score[i] > max)

        {

            max = score[i];

        }

    }

    return max;   

}

int minimum(int score[])

{

    min = score[0];

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

    {

        if(score[i] < min)

        {

            min = score[i];

        }

    }

    return min;

}

double average(int score[])

{

    double a = summation(score);

    maen = a / 10;

    return maen;

}

void descending_order(int score[])

{

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

    {

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

        {

            int n = 0;

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

            {

                n = score[j];

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

                score[j + 1] = n;

            }

        }

    }

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

    {

        if(i < 9)

        {

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

        }else{

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

        }

    }

}


int main()

{

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

    printf("班级总分为:%d\n", summation(score));

    printf("班级的最高分为:%d\n", maximal(score));

    printf("班级的最低分为:%d\n", minimum(score));

    printf("班级的平均分为:%.2f\n", average(score));

    descending_order(score);

}


正在回答

1 回答

第一点我需要吐槽的是你的代码没有可读性,很杂乱。第二我已经看出来的你的问题了,全局变量和局部变量名重复了,导致改变了变量中的值。我建议你不要全局变量,只在函数中定义局部变量,当你需要哪些变量的时,在定义。这样即使两个局部变量名重复了也不影响变量中的值。


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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

平均分大了一倍那样,希望大佬解答

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