c语言,结构体和数组

 

typedef struct _student
{
    char name[20];
    float eng;
    float chn;
    float maths;
    float avg;
}student;

void main()
{
    student s[3];
    int i;
    for(i=0;i<3;i++)
    {
        printf("请输入第%d个学生的数据:\n",i+1);
        printf("请输入姓名:");
        scanf("%s",s[i].name);
        printf("请输入数学、英语和语文成绩,用空格分开:");
        scanf("%f %f %f",&s[i].maths,&s[i].eng,&s[i].chn);
        s[i].avg = (s[i].maths+s[i].eng+s[i].chn)/3;
    }
    printf("输出结果为:\n");
    printf("------------");
    printf("姓名\t成绩\n");
    for(i=0;i<3;i++)
        printf("%s\t%.1f\n",s[i].name,s[i].avg);
    
}

 

什么问题啊,咋没写呢。是要写图中所示的输入输出程序吗、

#include<stdio.h>
 
#define N 5   //定义输入学生的个数
 
struct student //定义学生结构体
{
 
 char num[6] ;
 
 char name[8] ;
 
 int score[3] ;
 
 float avr; 
 
}stu[N]; 
 
void main() 
 
{
 
 int i,j,max,maxi,sum; 
 
 float average; 
 
 for(i=0;i<N;i++) 
 
 {
 
  printf("请输入学生成绩 %d:\n",i+1); //输入每个学生的数据
 
  printf("第:%d",i+1); 
 
  scanf("%s",stu[i].num); 
 
  printf("name:"); 
 
  scanf("%s",stu[i].name); 
 
  for(j=0;j<3;j++) 
 
  {
 
   printf("score %d:",j+1); 
 
   scanf("%d", &stu[i].score[j]); 
 
  } 
 
 } 
 
 average=0; 
 
 max=0; 
 
 maxi=0; 
 
 for(i=0;i<3;i++) //求平均数
 
 {
 
  sum=0; 
 
  for(j=0;j<3;j++) 
 
  sum+=stu[i].score[j]; 
 
  stu[i].avr=sum/3.0; 
 
  average+=stu[i].avr; 
 
  if(sum>max) 
 
  {
 
   max=sum; 
 
   maxi=i; 
 
  } 
 
 } 
 
 average/=N; 
 
 printf("  NO.     name    score1   score2    score3   average\n"); 
 
  for(i=0;i<N;i++) //输出每个学生的信息
 
  {
 
   printf("%5s%8s",stu[i].num, stu[i].name); 
 
   for(j=0;j<3;j++) 
 
    printf("%9d",stu[i].score[j]); 
 
   printf("%8.2f\n",stu[i].avr); 
 
  } 
 
 printf("平均分=%7.2f\n",average); 
 
  printf("最高成绩是:%s,score total:%d.",stu[maxi].name,max); 
 
}