关于数组名传递参数的问题( 用的是VS2017,一直提示错误,我太笨了,实在找不出来...
问题描述:有一个一维数组score,内放10个学生成绩,求平均成绩(写一个average函数求平均成绩)我写的代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int avg;
int score;
int average(score);
printf("请输入十个学生成绩:\n");
for (int i=0; i < 10; i++)
{
scanf("%-4d",&score);
}
avg = average(score);
printf("这十个学生的平均成绩是:%d\n", avg);
}
int average(int a)
{
int avg,sum=0 ;
for (int i = 0; i < 10; i++)
{
sum += a;
}
avg = sum / 10;
return avg;
}
代码要规范。输入输出的格式化字符要用对,比如 scanf("%-4d" 有这样用的吗?
还有一点。算成绩怎么可能是int, 怎么想也应该是会有小数的吧。
参考代码:
#include<stdio.h>
#include<math.h>
#define NUM 10
double average(double score[]);
int main(void)
{
double avg;
double score;
int i;
printf("请输入十个学生成绩:\n");
for (i=0; i < NUM; i++)
{
scanf("%lf",&score);
}
avg = average(score);
printf("这十个学生的平均成绩是:%.2f\n", avg);
return 0;
}
double average(double a[])
{
double avg,sum=0 ;
int i;
for (i = 0; i < NUM; i++)
{
sum += a;
}
avg = sum / NUM;
return avg;
} 数组传递时无法将其长度直接传递,请改写为
int average(int a[], int len)
调用时用
avg = average(score,10);
页:
[1]