| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:求助!一个关于结构以输入 判断大小 并输出的问题。
只看楼主 加入收藏
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
求助!一个关于结构以输入 判断大小 并输出的问题。
程序代码:
#include <stdio.h>

 #include <stdlib.h>

 struct student

 {
      int id;
      char name[10];
      float score;

 };

 int main()

 {
      struct student sb[10];
      int i;
      float max=0;
     for(i=0;i<10;i++)
     {
          scanf("%d%s%f",&sb[i].id,sb[i].name,&sb[i].score);
    }
     for(i=0;i<10;i++)
     {
          printf("%d %s %f\n",sb[i].id,sb[i].name,sb[i].score);
     }
     for(i=0;i<10;i++)
     {
     if(sb[i].socre<sb[i+1].score)
        max=sb[i+1].socre;
     }
     printf("成绩最高的学生的学号是%d",max.id);

     return 0;

 }题目要求是输入10个学生的学号 成绩 姓名
然后找出成绩最高的学生 并输出这个学生的学号和成绩
怎么老是报错啊!求助!

2011-12-07 10:28
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
收藏
得分:0 
求助!
2011-12-07 10:42
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
修改了你的代码,正确代码如下:应该看得懂吧,不用我写解释了。。
程序代码:
#include <stdio.h>
struct student
{
      int id;
      char name[10];
      float score;
};
int main()
{
      struct student sb[10];
      int i,j;
      float max=0;
      for(i=0;i<10;i++)
          scanf("%d%s%f",&sb[i].id,sb[i].name,&sb[i].score);
      for(i=0;i<10;i++)
          printf("%d %s %f\n",sb[i].id,sb[i].name,sb[i].score);
      for(i=0;i<10;i++)
        if(max<sb[i].score)
        {
           max=sb[i].score;
           j=i;
        }
      printf("成绩最高的学生的学号是%d\n",sb[j].id);
      return 0;
}


2011-12-07 10:48
h741773374
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2011-10-28
收藏
得分:0 
程序代码:
struct STUDENT
{

 char number[20];

 char name[20];

 int c;

 int yingyu;

 int gaoshu;
};

 void control();

 void output(struct STUDENT s[],int n);

 void max(struct STUDENT s[],int n);

 void cyuyan_jigelv(struct STUDENT s[],int n);

 void sangebujige(struct STUDENT s[],int n);

 main()
{

 control();
}
void control()
{

 struct STUDENT s[10];

 int i;

 for(i=0;i<10;i++){

 printf("请输入学号\n");

 scanf("%s",s[i].number);

 printf("请输入姓名\n");

 scanf("%s",s[i].name);

 printf("请输入c语言成绩\n");

 scanf("%d",&s[i].c);

 printf("请输入高数成绩\n");

 scanf("%d",&s[i].gaoshu);

 printf("请输入英语成绩\n");

 scanf("%d",&s[i].yingyu);
}

 output(s,10);

 max(s,10);

 cyuyan_jigelv(s,10);

 sangebujige(s,10);
}
void output(struct STUDENT s[],int n){

 int i;

 for(i=0;i<n;i++){

 printf("学号:%s\n",s[i].number);

 printf("姓名:%s\n",s[i].name);

 printf("c语言成绩:%d\n",s[i].c);

 printf("英语成绩:%d\n",s[i].yingyu);

 printf("高数成绩:%d\n",s[i].gaoshu);
}
}
void max(struct STUDENT s[],int n){

 int m[10];

 int i;

 int da;

 int ren;

 for(i=0;i<n;i++)
{

 m[i]=s[i].c+s[i].gaoshu+s[i].yingyu;
}

 da=m[0];

 for(i=0;i<n;i++){

 if(m[i]>da)

 da=m[i];

 ren=i;
}

 printf("靠最高分的学号为%s\n",s[ren].number);

 printf("考最高分的为%s\n",s[ren].name);

 printf("最高分为%d\n",da);
}
void cyuyan_jigelv(struct STUDENT s[],int n){

 int i;

 int jige=0;

 float jigelv;

 for(i=0;i<n;i++){

 if(s[i].c>=60)

 jige++;
}

 jigelv=((float)jige/(float)n);

 printf("c语言的及格率为%f",jigelv);
}
void sangebujige(struct STUDENT s[],int n){

 int i;

 int san_bujige=0;

 for(i=0;i<n;i++){

 if(s[i].c<60)

 if(s[i].gaoshu<60)

 if(s[i].yingyu<60)

 san_bujige++;
}

 printf("三门都不及格的人数为%d\n",san_bujige);
}
2011-12-07 10:50
h741773374
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2011-10-28
收藏
得分:0 
我们的作业,比你那稍微复杂一点点
2011-12-07 10:51
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
收藏
得分:0 
回复 2楼 C小菜
thanks.
2011-12-07 10:58
C小菜
Rank: 1
等 级:新手上路
帖 子:109
专家分:3
注 册:2011-9-14
收藏
得分:0 
回复 3楼 wang155423
哦。
2011-12-07 10:58
jfei
Rank: 4
来 自:郑州
等 级:业余侠客
帖 子:92
专家分:268
注 册:2011-8-27
收藏
得分:0 
相当复杂

虾米们!!!有意者加QQ 2434202652,2632939128联系我
2011-12-07 13:21
快速回复:求助!一个关于结构以输入 判断大小 并输出的问题。
数据加载中...
 
   



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

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