C语言:这样输入学生的基本信息,并求平均年龄为啥不对呢?

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:31:24
#include<stdio.h>
struct student
{
char name[10];
int age;
int chinese;
int math;
};

int average_age();
main()
{

struct student stu[4];
struct student *p;
int i;
int average;

*p=stu;
printf("请输入四个学生的信息\n");

printf("请输入姓名");
for(i=0;i<4;i++)
scanf("%d",&p->name[i]);

printf("请输入年龄");
for(i=0;i<4;i++)
scanf("%d",stu[i].age);

printf("请输入语文成绩");
for(i=0;i<4;i++)
scanf("%d",stu[i].chinese);

printf("请输入数学成绩");
for(i=0;i<4;i++)
scanf("%d",stu[i].math);

average=average_age();

}
int average_age()
{
int average;
average=(stu[0].age+stu[1].age+stu[2].age+stu[3].age)/4
return average;}

修改了若干个地方。
主要是输入写的不对。还有计算平均要传递参数。

#include<stdio.h>
struct student
{
char name[10];
int age;
int chinese;
int math;
};

int average_age(struct student stu[4]);
void main()
{

struct student stu[4];
int i;
int average;

// *p=stu;
printf("请输入四个学生的信息\n");

printf("请输入姓名");
for(i=0;i<4;i++)
scanf("%s",stu[i].name);

printf("请输入年龄");
for(i=0;i<4;i++)
scanf("%d",&stu[i].age);

printf("请输入语文成绩");
for(i=0;i<4;i++)
scanf("%d",&stu[i].chinese);

printf("请输入数学成绩");
for(i=0;i<4;i++)
scanf("%d",&stu[i].math);

average=average_age(stu);
printf("%d\n", average);

}
int average_age(struct student stu[4])
{
int average;