| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1818 人关注过本帖
标题:初学结构体变量,求助
取消只看楼主 加入收藏
c语言小白。
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:0 
初学结构体变量,求助
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入3个学生的数据,要求输出3门课总平均成绩,以及单科最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数),成绩都大于85分的学生的信息
#include <stdio.h>
#define N 10
struct student
{
   int num;
   char name[20];
   float score[3];
};
void main()
{   struct student stu[N],*p;

   void input(struct student stu[N]);
   void average(struct student stu[N]);
   void search(struct student stu[N]);
   void search85(struct student stu[N]);
   p=stu;

   input(p);
   printf("各科总平均成绩:\n");
   average(p);
   printf("单科最高分学生信息:\n");
   search(p);
   printf("各科成绩都大于85的学生信息:\n");
   search85(p);
}


void input(struct student stu[N])
{
  int i,j;
  for (i=0;i<N;i++)
    {
         printf("请输入第%d名学生的信息: \n",i+1);
         printf("学号: ");
         scanf("%d",&stu[i].num);
         printf("姓名: ");
         scanf("%s",stu[i].name);
          for (j=0;j<3;j++)
            {
              printf("课程%d成绩: ",j+1);
              scanf("%f",&stu[i].score[j]);
          }
    }
}


void average(struct student stu[N])
{   
    int i,j;  
    float sum,aver[3];
    for(i=0;i<3;i++)
    {sum=0;
     for(j=0;j<N;j++)
     { sum+=stu[i].score[j];}
     aver[i]=sum/N;
     printf("课程%d的总平均成绩:%f",i+1,aver[i]);
}


void search(struct student stu[N])
{  
    float max,avg;
    int k,m,i,j;
    for(i=0;i<3;i++)
    {   max=stu[0].score[i];
        for(j=0;j<N;j++)
        if(max<stu[j].score[i]) max=stu[j].score[i];
        k=i;m=j;
        avg=stu[m].score[0]+stu[m].score[1]+stu[m].score[2];
    }

    printf("学号: %d,姓名: %s,课程1成绩: %f,课程2成绩: %f,课程3成绩: %f,平均成绩: %f\n",stu[m].num,stu[m].name,stu[m].score[0],stu[m].score[1],stu[m].score[2],avg/3);
}
   

void search85(struct student stu[N])
{
   int i,j,label;
   float avg;
  for (i=0;i<N;i++)
  {
      avg=0;
      label=0;
      for (j=0;j<3;j++)
   {
      if (stu[i].score[j]>85)    label++;
      avg +=stu[i].score[j];
   }
   if (label==3)
   {   
    printf("学号: %d,姓名: %s,课程1成绩: %f,课程2成绩: %f,课程3成绩: %f,平均成绩: %f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],avg/3);
    }
  }   
踢错是\c语言\cdaf.c(60) : error C2143: syntax error : missing ';' before 'type'
C:\c语言\cdaf.c(63) : error C2143: syntax error : missing ';' before 'type'
C:\c语言\cdaf.c(65) : error C2065: 'max' : undeclared identifier
C:\c语言\cdaf.c(65) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(67) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(68) : error C2065: 'k' : undeclared identifier
C:\c语言\cdaf.c(68) : error C2065: 'm' : undeclared identifier
C:\c语言\cdaf.c(69) : error C2065: 'avg' : undeclared identifier
C:\c语言\cdaf.c(69) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(94) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

cdaf.obj - 1 error(s), 0 warning(s)
感觉没错,不知道怎么改,希望各位老师不吝赐教!
搜索更多相关主题的帖子: include average search 结构体 键盘 
2017-06-10 22:14
快速回复:初学结构体变量,求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017377 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved