问答详情
源自: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 sum = 0;
	int i;
	for(i=0;i<N;i++)
	{
		sum+=score[i];                
	} 
	return sum;
}
//计算平均分 
int getAvgScore(int score[])
{
	return getTotalScore(score)/N;   
}
//计算最高分 
int getMax(int score[])
{
	int max = -1;
	int i;
	for(i=0;i<N;i++)
	{
		if(score[i]>max)
		{
			max = score[i];              
		}                
	} 
	return max;
}
//计算最低分 
int getMin(int score[])
{
	int min =100;
	int i;
	for(i=0;i<N;i++)
	{
		if(score[i]< min)
		{
			min = score[i];              
		}                
	} 
	return min;
}
//分数降序排序 
void sort(int score[])
{
	int i,j;
	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;                  
			}                 
		}                   
	}
	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);
	min = getMin(score);
	printf("总分是:%d\n",sum);
	printf("平均分是:%d\n",avg);
	printf("最高分是:%d\n",max);
	printf("最低分是:%d\n",min);
	printf("----------成绩排名---------\n");
	sort(score);
	return 0;    
}

上面给出的参考答案里,平均分函数的变量为什么定义为数组类型,就是 int getAvgScore(int score[])  里的score[],但是函数内部用到的参数是getTotalScore(score),这个getTotalScore(score)是一个整型参数而不是一个数组吧,我改成int getAvgScore(int score),没有[],运行结果也是一样的,不知道哪个更正确。

提问者:qq_圓圓_0 2015-10-17 21:14

个回答

  • 心悦君夕
    2015-10-19 11:39:23
    已采纳

    函数内部用的getTotalScore(score) ,这里面score只是个参数名称,实际的参数是{67,98,75,63,82,79,81,91,66,84}这堆东西,而在外面定义函数的时候定义的是int getTotalScore(int score[])

    这表明,这个函数需要传递一个数组的参数,那么如果你把后面[]这个去掉之后,就会报错,当然有些编译器不会给你报错,因为现在编译器已经可以根据你的写法做一些调整,但是你实际的那种写法是错的

  • qq_圓圓_0
    2015-10-26 21:01:40

    还有 我其实说的是AvgScore函数而不是TotalScore函数 在AvgScore函数内部又用到了TotalScore函数 那么Avg的参数是Total这个函数的参数(即数组)还是Total这个函数的返回值(即整型)呢?  

    谢谢