标题:看看有错没
取消只看楼主
hjh10845
Rank: 1
来 自:火星
等 级:新手上路
帖 子:104
专家分:0
注 册:2008-3-31
 问题点数:0 回复次数:1 
看看有错没
//把40个学生数据写入到文件中,然后排序总分高低输出
#include <stdio.h>
#include <string.h>
#define M 40
void pai_xu(float data[],int i);
struct stu_info
 {
   long no;
   char name[8];
   float math,english,politics,computer;
  }stua[M],*stup;
int main()
  {
   FILE*fp;
   float sum;
   int i;
   stup=stua;
   
   if((fp=fopen("d: \\School\\students","w+"))==NULL)
    {
     printf("Open file error!");
      exit(0);
    }
  printf("\n请输入学生数据,输入完成按"#"确认: \n");
  for(i=0;i<M;i++,stup++)
     {
    scanf("%d%s%f%f%f%f",&stu_p->no,stu_p->name,stu_p->math,stu_p->english,
          stu_p->politics,stu_p->computer);
       if(&stu_p->no||stu_p->name||stu_p->math||stu_p->english||
          stu_p->politics||stu_p->computer=='#')break;
          sum=(stup_math+stu_p->english+stu_p->poplitics+stu_pcomputer);//计算总分数
        pai_xu(sum,M);  //调用pai_xu函数 ,使成绩总分从高到低排序
     stu_p=stua;
    fwrite(stu_p,sizeof(struct stuinfo),M,fp); //成块写入到文件中
    rewind(fp);  //指针移到文件开头
    for(i=0;i<M;i++,stu_p++)
     printf("学生成绩排名如下:\n");
     printf("%5d   %s   %f  %f  %f  %f\n",&stu_p->no,stu_p->name,stu_p->math,
            stu_p->english,stu_p->politics,stu_p->computer); //读出40个学生分数从高到低排序
       stua=stu_p;
     fclose(fp);
     return 0;
     
   }

  void pai_xu(float data[],int n)
   {
     int i,j;
     float max,temp;
     for(i=0;i<n-1;i++)
      {
        max=i;
        for(j=i+1;j<n;j++)
          if(data[i]>data[max]
            max=j;
           temp=data[i];
           data[i]=data[max];
           dat[amax]=temp;
      }
      return;
    }
搜索更多相关主题的帖子: float stup int stua 
2008-04-28 13:54
hjh10845
Rank: 1
来 自:火星
等 级:新手上路
帖 子:104
专家分:0
注 册:2008-3-31
得分:0 
//建议:不如在学生信息里直接加入总分一项,排序时就简单一点
//建议:不如在学生信息里直接加入总分一项,排序时就简单一点??
 
 成绩是几门,请问你是怎么排序,??请指教。。

<接受者>? or <创造者>?
2008-04-29 23:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211464-1-1.html




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

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