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

到底哪里出错了。检查了很久都没看出来

#include <stdio.h>
#define N 10;

//打印分数
void printScore(int score[])
{
	int i;
	printf("\n");
	for(i=0;i<N;i++)
	{
		printf("%d ", score[i]);
	}
	printf("\n");
}

//计算考试总分
int getTotalScore(int score[])
{
    int i;
    int sum = 0;
    for(i = 0; i < N; i++)
    {
        sum += score[i];
    }
    return sum;
}

//计算最高分
int getMax(int score[])
{
    int i;
    int max = -1;
    for(i=0; i<N; i++)
    {
        if(score[i] > max)
        {
            max = score[i];
        }
    }
    return max;
}

//计算最低分
int getMin(int score[])
{
    int i;
    int min = 100;
    for(i = 0; i < N; i++)
    {
        if(score[i] < min)
        {
            min = score[i];
        }
    }
    return min;
}

//计算平均分
float getAvgScore(int score[])
{
    return getTotalScore(score)/N;
}

// 分数降序排序
void sort(int score[])
{
    int i, j;
    int temp;
    for(i=N-2;i>=0;i--)
	{
		for(j=0;j<=i;j++)
		{
			if(score[j]<score[j+1])
			{
				int temp;
				temp = score[j];
				score[j] = score[j+1];
				score[j+1]=temp;
			}
		}
	}
    /*
    for(i = 0, i < N - 1, i++)
    {
        for(j = 0; j < N - i -1; j++)
        {
            if(score[j] < score[j + 1])
            {
                temp = score[j];
                score[j] = score[j + 1];
                score[j + 1] = temp;
            }
        }
    }
    */
    printScore(score);
}

int main()
{
    int score[N]={67,98,75,63,82,79,81,91,66,84};
    int sum, avg, max, min;
    sum = getTotalScore(score);
    avg = getAvgScore(score);
    max = getMax(score);         // EK:为什么数组可以不加[N]??????
    min = getMin(score);
    printf("总分是:%d\n", sum);
    printf("最高分是:%d\n", max);
    printf("最低分是:%d\n", min);
    printf("平均分是:%d\n", average);      // EK:设置成单精度?
    printf("班级10个学生的考试成绩降序排序为:");
    sort(score);
    // EK:通过函数排序后,原数列排序变化了吗?
    /*
    EK:测试代码如下
    int i;
    for(i = 0; i < N; i++)
    {
        printf("%d ", score[i]);
    }
    */
    return 0;
}


正在回答

2 回答

把所有N改成10,然后主函数里你前面定义的是avg后面用的是average不一样,改了之后就对了

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

sohjiro 提问者

非常感谢!
2017-08-01 回复 有任何疑惑可以回复我~
#2

sohjiro 提问者

像您所提示的一样,把N全部改为10就可以用了,想问一下为什么不能用常量N啊?
2017-08-01 回复 有任何疑惑可以回复我~

检查出问题原因了,定义常量N的时候多加了一个分号 ;  


这下总算是记住了,检查了N久,错误印象十分深刻。


其他小错误就如上面那位大神提到的,avg和average不一致。


以后千万记住:

“定义常量不需要加分号!”

“定义常量不需要加分号!”

“定义常量不需要加分号!”

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

举报

0/150
提交
取消

到底哪里出错了。检查了很久都没看出来

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号