#include
#include
#include
#define N 2
typedef struct student
{
int num;
char* name;
int score[3];
}Student;
void print(Student myclass[],int length)
{
int i=0,sum=0,sum1=0,sum2=0,max=0;
for(i=0;i
printf("num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[i].num,myclass[i].name,myclass[i].score[0],myclass[i].score[1],myclass[i].score[2],(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])/3.0,(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2]));
sum=sum+myclass[i].score[0];
sum1=sum1+myclass[i].score[1];
sum2=sum2+myclass[i].score[2];
if((myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])>max)
max=i;
}
printf("平均 数学:%d 英语:%d 自然:%d\n",sum/length,sum1/length,sum2/length);
printf("最高:num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[max].num,myclass[max].name,myclass[max].score[0],myclass[max].score[1],myclass[max].score[2],(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2])/3.0,(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2]));
}
void input(Student myclass[],int length)
{
int i=0;
for(i=0;i
printf("请输入第%d个学生的信息\n",i+1);
printf("学号");
scanf("%d",&myclass[i].num);
myclass[i].name=(char*)malloc(sizeof(char)*20);
printf("姓名");
scanf("%s",myclass[i].name);
printf("数学");
scanf("%d",&myclass[i].score[0]);
printf("英语");
scanf("%d",&myclass[i].score[1]);
printf("自然");
scanf("%d",&myclass[i].score[2]);
}
}
void main()
{
Student myclass[N];
input(myclass,N);
print(myclass,N);
}
可以满足楼主的要求,望采纳!!
我来说说楼主的一些问题,首先你的那段程序,函数应该在外面声明,在main函数里面调用,其次是函数要传入结构体的参数,大概就是这些主要的问题,当然还有一些小的问题,自己找吧!!!
你程序出错的原因是把input()函数的定义放在main函数中了。C规定所有函数必须直接在文件中定义,而不能嵌套在其它函数中定义。允许main函数中出现"input();"这样的函数首部,作为“main函数之后存在input()函数,请编译程序允许main函数中调用input()函数。”的声明。
Sorry, I just can write English in my computer. Maybe you are not write ";" behind input function.