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

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

#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;
}


提问者:sohjiro 2017-07-31 15:45

个回答

  • 川澄乱步
    2017-07-31 18:10:00
    已采纳

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

  • sohjiro
    2017-08-01 12:50:04

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


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


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


    以后千万记住:

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

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

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