c语言中结构体变量做函数参数的问题
C语言中调用函数时,以结构体变量作为函数参量一该如何编写?这里有一段代码要求调用函数算学生的平均成绩和总成绩#include<stdio.h>#defineM...
C语言中调用函数时,以结构体变量作为函数参量一该如何编写?这里有一段代码要求调用函数算学生的平均成绩和总成绩#include<stdio.h>#define M 3struct date { int num; char name[10]; char sex; int age; float score[5]; }student[M];void main(){ int i,j; void f(date); printf("请按顺序输入学生数据\n"); for(i=0;i<M;i++) { printf("姓名:"); scanf("%s",student[i].name); printf("学号:"); scanf("%d",&student[i].num); printf("性别:"); scanf("%c%c",&student[i].sex); printf("年龄:"); scanf("%d",&student[i].age); printf("语文成绩:"); scanf("%f",&student[i].score[0]); printf("数学成绩:"); scanf("%f",&student[i].score[1]); printf("英语成绩:"); scanf("%f",&student[i].score[2]); if(i!=2) printf("请输入下一个学生的数据\n"); } for(i=0;i<M;i++) f(student); for(i=0;i<M;i++) printf("第%d位同学的总分为%f,平均分为%f\n",i+1,student[i].score[3],student[i].score);}void f(date student){ int i,j; for(i=0;i<M;i++) { for(j=0;j<3;j++) { student[i].score[3]+=student[i].score[j]; student[i].score[4]=student[i].score[3]/3; } }}问题出在第36行的调用函数里
展开
2个回答
展开全部
你有几处错误,以下是修改后的代码
#include<stdio.h>
#define M 3
struct date
{
int num;
char name[10];
char sex;
int age;
float score[5];
}student[M];
void f(struct date student[]);
void main()
{
int i,j;
printf("请按顺序输入学生数据\n");
for(i=0;i<M;i++)
{
printf("姓名:");
scanf("%s",student[i].name);
printf("学号:");
scanf("%d",&student[i].num);
printf("性别:");
scanf("%c%c",&student[i].sex);
printf("年龄:");
scanf("%d",&student[i].age);
printf("语文成绩:");
scanf("%f",&student[i].score[0]);
printf("数学成绩:");
scanf("%f",&student[i].score[1]);
printf("英语成绩:");
scanf("%f",&student[i].score[2]);
if(i!=2)
printf("请输入下一个学生的数据\n");
}
/*for(i=0;i<M;i++)*/
f(student);
for(i=0;i<M;i++)
printf("第%d位同学的总分为%f,平均分为%f\n",i+1,student[i].score[3],student[i].score);
}
void f(struct date student[])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}
#include<stdio.h>
#define M 3
struct date
{
int num;
char name[10];
char sex;
int age;
float score[5];
}student[M];
void f(struct date student[]);
void main()
{
int i,j;
printf("请按顺序输入学生数据\n");
for(i=0;i<M;i++)
{
printf("姓名:");
scanf("%s",student[i].name);
printf("学号:");
scanf("%d",&student[i].num);
printf("性别:");
scanf("%c%c",&student[i].sex);
printf("年龄:");
scanf("%d",&student[i].age);
printf("语文成绩:");
scanf("%f",&student[i].score[0]);
printf("数学成绩:");
scanf("%f",&student[i].score[1]);
printf("英语成绩:");
scanf("%f",&student[i].score[2]);
if(i!=2)
printf("请输入下一个学生的数据\n");
}
/*for(i=0;i<M;i++)*/
f(student);
for(i=0;i<M;i++)
printf("第%d位同学的总分为%f,平均分为%f\n",i+1,student[i].score[3],student[i].score);
}
void f(struct date student[])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询