c语言中结构体变量做函数参数的问题

2024-11-23 06:39:06
推荐回答(2个)
回答1:

你有几处错误,以下是修改后的代码
#include
#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 {
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 f(student);
for(i=0;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 {
for(j=0;j<3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}

回答2:

当成基本类型来用就好了,结构体唯一要注意的是分配空间,拷贝构造(特别是浅拷贝)
类似下面这样:
struct
complex_struct
a1,
b1,
c1;
c1
=
add_complex(a1,
b1);