请各位大侠帮我看下C语言的结构体问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:17:26
要求输入并输出5个学员信息,用结构体做,主函数输入,子函数输出,我写的有问题,请看下我调用函数写的错在哪里?请帮我指出来,谢谢!!!

#include "stdio.h"
void hot(struct std a[5]);
struct stu
{
int num;
char *name;
int score[3];

}boy[5];

void main()
{

int i,j;
for(i=0;i<5;i++)
{
printf("请输入学生的学号:");
scanf("%d",&boy[i].num);
printf("请输入学生的姓名:");
scanf("%s",boy[i].name);
printf("请输入三门该生成绩:");
for(j=0;j<3;j++)
scanf("%d",&boy[i].score[j]);
}
hot(struct std boy[5]);
return 0;
}
void hot(struct std a[5])
{
int i,j;
for(i=0;i<5;i++)
printf("学号为:%d",hot[i].num);
printf("姓名为:%s",hot[i].name);
for(j=0;j<3;j++)
printf("成绩为%d",hot[i].score[j]);

}

#include "stdio.h"
void hot(struct stu a[5]);
struct stu
{
int num;
char *name;
int score[3];

}boy[5];

void main()
{

int i,j;
for(i=0;i<5;i++)
{
printf("请输入学生的学号:");
scanf("%d",&boy[i].num);
printf("请输入学生的姓名:");
scanf("%s",boy[i].name);
printf("请输入三门该生成绩:");
for(j=0;j<3;j++)
scanf("%d",&boy[i].score[j]);
}
hot(boy);
// return 0;
}
void hot(struct stu a[5])
{
int i,j;
for(i=0;i<5;i++)
printf("学号为:%d",a[i].num);
printf("姓名为:%s",a[i].name);
for(j=0;j<3;j++)
printf("成绩为%d",a[i].score[j]);
}

这是我修改后的程序...你仔细看看和你的有哪些不同的!!!
你的错误主要有以下几大点:
1.在void main()中.你出现了return 0语句.这是不对的.void说明无返回值..
2.hot(boy); 函数调用时,不必再次输入类型名!而且...形参以"数组"的形式给出(事实上是指针形式)