高手帮忙看看 哪里错了
#include <stdio.h>double pingjunfen, zuigao, zuidi, sum;
double fenshu(double b);
void main()
{
int a;
int i;
printf("请输入学生成绩: \n");
for(i=0; i < 10; i ++)
{
scanf("%d",&a);
}
for(i=0; i < 10; i ++)
{
printf("%d",a);
}
double fenshu(a);
printf("%d",pingjunfen);
}
double fenshu(double b)
{
int i;
for(i=0; i < 10; i++)
{
sum = sum + b;
}
pingjunfen = sum / 10;
return pingjunfen;
}
--------------------Configuration: text - Win32 Debug--------------------
Compiling...
text.c
F:\C例题\textp\text.c(27) : error C2143: syntax error : missing ';' before 'type'
执行 cl.exe 时出错.
text.obj - 1 error(s), 0 warning(s)
用一个double变量接收fenshu函数的计算结果
而且函数本身也没写对,不能这样传递实参
应该改为
double fenshu(double b[],int len)
#include <stdio.h>
double pingjunfen,sum;
void fenshu(double b[], int length);
void main(){
double a;
printf("请输入学生成绩: \n");
for (int i = 0; i < 10; i++){
scanf("%lf", &a);
}
for (int i = 0; i < 10; i++){
printf("%.2f", a);
}
fenshu(a,10);
printf("%.2f", pingjunfen);
system("pause");
}
void fenshu(double b[], int length){
for (int i = 0; i < 10; i++)
{
sum = sum + b;
}
pingjunfen = sum / length;
}
scanf("%d",&a);//数组是double类型,输入数据类型应该为%lf ,a是数组首地址,再加&符号是不对的, 可以用a+i或者&a
printf("%d",a);//输入数据类型应该为%lf ,a是数组,输出的时候应该用a或者 *(a+i)
double fenshu(double b)//返回值类型为double,要有同类型的变量接收其返回值,参数中数组个数不用写
//按你的写法应该pingjunfen =fenshu(a);
//函数里面的sum应该赋初值0,不然sum会随机分配,结果会错误
以上是我的一些小意见,希望采纳{:5_91:} scanf("%d",&a);//a是double类型数组, 所以应该用%lf接收输入数据, a是数组首地址,所以后面的&a应该改为a+i或者&a
printf("%d",a); //问题同上, a为数组首地址,输出时可以用a或者*(a+i)
double fenshu(double b) //函数参数里面数组不要数组个数
//函数内部sum应该赋初值0.0,不然程序随机分配,结果会出错
//函数的返回值类型为double,所以应该有个double类型的变量接收返回值,可以用pingjunfen = fenshu(a);
printf("%d",pingjunfen);//同上
页:
[1]