| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 844 人关注过本帖
标题:c语言难题
取消只看楼主 加入收藏
樱花雾海
Rank: 2
来 自:广西桂林
等 级:论坛游民
帖 子:39
专家分:28
注 册:2011-6-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
c语言难题
一个班学生,数据包括学号,姓名,五门课(英语,高数,马哲,计算机,电子技术)的成绩。要求按总分高到低排存到cj.dat中。并按学号小到大顺序打印出  
以上是题目
#include<stdio.h>
struct Student
 {
  int num;  //姓名
        char name[20];            //名的最大长度为2
  float score[5];           //5们课的成绩
 }student[30];         //假设全班有30个人
int main()
{    float grade[30];               //30个同学的总成绩
 printf("please input the students'num,name and score:\n");
 for(int i=0;i<30;i++)
 {   
  scanf("%d,%s",&student.num,&student.name );
  for(int j=0;j<5;j++)
  {
   scanf("%f",&student.score[j]);
  }
  grade=student.score[0]+student.score[1]+student.score[2]+student.score[3]+student.score[4];
 }
  //总分由高到低存放到cj.dat中就不懂了
  //冒泡法排序学号
  for(i=0;i<29;i++)
   for(int b=29;b>i;b--)
   {
    if(student.num<student[b-1].num)
    {
     int x;
     float y;
     x=student.num;
     student.num=student[b-1].num;
     student[b-1].num=x;
     //学号改变了,其他的也要改变
     y=grade;
     grade=grade[b-1];
     grade[b-1]=y;
    }
   }
   //按顺序输出学生的信息
   for(i=0;i<30;i++)
   {
    scanf("%d,%d",&student.num,&grade);
   }
   return 0;
}
编译时没有错误,但是运行时得不到想要的效果,调试也不知道问题出在哪,大家帮一下,谢啦
搜索更多相关主题的帖子: 姓名 电子技术 include please 总成绩 
2012-01-03 23:19
樱花雾海
Rank: 2
来 自:广西桂林
等 级:论坛游民
帖 子:39
专家分:28
注 册:2011-6-17
收藏
得分:0 
回三楼,for(i=0;i<29;i++),这里我想用冒泡法来排序,好像没错吧
2012-01-04 13:36
快速回复:c语言难题
数据加载中...
 
   



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

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