C程序问题
此段程序有两个错误 我实在改不出来了 望高手给予指点 谢谢
#include<stdio.h>
#define N 5
jisuan(struct student);
struct student
{
int num;
char name[20];
float scoreC;
float scoreJ;
}str[N];
void main()
{
int i;
float ave;
printf("\n请输入5为学员的信息,即学号、姓名、C课程成绩、Java课程成绩: \n");
for(i=0;i<N;i++)
{
scanf("%d\t%s\t%6.2f\t%6.2f\n",&str[i].num,&str[i].name,&str[i].scoreC,&str[i].scoreJ);
}
jisuan(str[i]);
for(i=0;i<N;i++)
{
printf("学生的学号、姓名、平均成绩为:%d\t%s\t%6.2f\n ",str[i].num,str[i].name,ave);
}
}
jisuan(struct student str);
{
int i;
float ave;
for(i=0;i<N;i++)
{
ave=(str[i].scoreC+str[i].scoreJ)/2;
}
return ave;
}
参考答案:#include<stdio.h>
#define N 5
struct student
{
int num;
char name[20];
float scoreC;
float scoreJ;
}str[N];
float ave[N];/* ave改成全局变量*/
void jisuan(struct student strr[N]);
void main()
{
int i;
printf("\n请输入5为学员的信息,即学号、姓名、C课程成绩、Java课程成绩: \n");
for(i=0;i<N;i++)
{
scanf("%d%s%f%f",&str[i].num,str[i].name,&str[i].scoreC,&str[i].scoreJ);
}
jisuan(str);
for(i=0;i<N;i++)
{
printf("学生的学号、姓名、平均成绩为:%d\t%s\t%6.2f\n ",str[i].num,str[i].name,ave[i]);
}
}
void jisuan(struct student strr[])
{
int i;
for(i=0;i<N;i++)
{
ave[i]=(strr[i].scoreC+strr[i].scoreJ)/2;
}
}
Turbo C2.0调试成功