标题:学生成绩录入之后要插入一个学生并排序怎么弄喃
只看楼主
不爱C语言
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-29
结帖率:100%
已结贴  问题点数:5 回复次数:8 
学生成绩录入之后要插入一个学生并排序怎么弄喃
#include"stdio.h"
#include"stdlib.h"
#define M 5
#define stu struct student
stu
{
 int num;
 char name[10];
 float N1;
 float N2;
 float N3;
 float avg;
};
void main()
{
 stu st[M],temp;
 FILE *fp,*fp1;
 int i,j;
 
 for(i=0;i<M;i++)
 {
  scanf("%d%s%f%f%f",&st[i].num,st[i].name,&st[i].N1,&st[i].N2,&st[i].N3);
  st[i].avg=(st[i].N1+st[i].N2+st[i].N3)/3;
  
 }
 if((fp=fopen("stud.txt","wb"))==NULL)
 {
  printf("cannot open file\n");
  
 }
 for(i=0;i<M;i++)
 {
  if(fwrite(&st[i],sizeof(stu),1,fp)!=1)
   printf("file write error\n");
 }
 fclose(fp);
 fp=fopen("stud","rb");
 printf("num\tname\tscore1\tscore2\tscore3\taverage\n");
 for(i=0;i<M;i++)
 {
  fread(&st[i],sizeof(stu),1,fp);
  printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
  
 }
 printf("排序后的成绩\n");
 for(i=0;i<M;i++)
  for(j=i+1;j<M;j++)
   if(st[i].avg<st[j].avg)
   {
    temp=st[i];
    st[i]=st[j];
    st[j]=temp;

   }
 fp1=fopen("stu_sort.txt","w");
 for(i=0;i<M;i++)
 {
  fwrite(&st[i],sizeof(struct student),1,fp);
  printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
  
 }
 fclose(fp1);

}
怎么插入喃
搜索更多相关主题的帖子: cannot file include 录入 void 
2012-10-29 18:17
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
得分:5 
#include"stdio.h"
#include"stdlib.h"
#define M 6
#define stu struct student
stu
{
int num;
char name[10];
float N1;
float N2;
float N3;
float avg;
};
void main()
{

stu st[M],temp;
FILE *fp,*fp1;
int i,j;

for(i=0;i<M-1;i++)
{
  scanf("%d%s%f%f%f",&st[i].num,st[i].name,&st[i].N1,&st[i].N2,&st[i].N3);
  st[i].avg=(st[i].N1+st[i].N2+st[i].N3)/3;
  
}
if((fp=fopen("stud.txt","wb"))==NULL)
{
  printf("cannot open file\n");
  
}
for(i=0;i<M-1;i++)
{
  if(fwrite(&st[i],sizeof(stu),1,fp)!=1)
   printf("file write error\n");
}
fclose(fp);
fp=fopen("stud","rb");
printf("num\tname\tscore1\tscore2\tscore3\taverage\n");
for(i=0;i<M-1;i++)
{
  fread(&st[i],sizeof(stu),1,fp);
  printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
  
}
printf("排序后的成绩\n");
for(i=0;i<M-2;i++)
  for(j=i+1;j<M-1;j++)
   if(st[i].avg<st[j].avg)
   {
    temp=st[i];
    st[i]=st[j];
    st[j]=temp;

   }
fp1=fopen("stu_sort.txt","w");
for(i=0;i<M-1;i++)
{
  fwrite(&st[i],sizeof(struct student),1,fp);
  printf("%d\t%s\t%f\t%f\t%f\t%f\n",st[i].num,st[i].name,st[i].N1,st[i].N2,st[i].N3,st[i].avg);
  
}
fclose(fp1);
//插入新的学生
int a;
scanf("%d%s%f%f%f",&st[5].num,st[5].name,&st[5].N1,&st[5].N2,&st[5].N3);
st[5].avg=(st[5].N1+st[5].N2+st[5].N3)/3;
for(i=0;i<M-1;i++)
if(st[i].avg<st[5].avg)
{
    temp=st[i];
    st[i]=st[5];
    a=i;
    for(i=M-1;i>a+1;i++)
    for(j=M-2;j>a;j++)
    {
       st[i]=st[j];
    }
    st[i]=temp;
    break;
}
2012-10-30 11:24
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
得分:0 
不好意思,插入新的学生中if条件中的for循环中应是i--,j--
2012-10-30 11:27
不爱C语言
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-29
得分:0 
回复 3楼 a635958000
:81: 错误:expected declaration or statement at end of
这个怎么弄喃
2012-10-30 17:44
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
得分:0 
回复 4楼 不爱C语言
我的怎么没有出现你的问题啊,你说的是编译还是什么?
2012-10-31 09:32
不爱C语言
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-29
得分:0 
回复 5楼 a635958000
编译时会出现的错误哈
2012-10-31 18:12
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
得分:0 
回复 6楼 不爱C语言
c1.cpp

c1.obj - 0 error(s), 0 warning(s)
c1.exe - 0 error(s), 0 warning(s)
没有啊,你发过来我看看你的错误,反正我的没有错误
2012-11-01 08:34
mengqingguo
Rank: 2
等 级:论坛游民
帖 子:25
专家分:36
注 册:2012-11-1
得分:0 
最后一行加ENTER 编译器有时候会这样,判断最后一样后面是否会有ENTER.
2012-11-01 21:28
不爱C语言
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-29
得分:0 
回复 8楼 mengqingguo
哦,我是在虚拟机里面编译的
2012-11-03 20:01



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




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

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