| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 338 人关注过本帖
标题:求教一个关于文件操作的问题
取消只看楼主 加入收藏
csfutree
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-3-13
收藏
 问题点数:0 回复次数:0 
求教一个关于文件操作的问题

我想在这个程序中排序,可是总是出错,得不到我想要的结果,请大虾们帮忙看看,在此先谢谢路见不平的大虾!
(先是输入一个学生的三门成绩,然后输入到stud.dat中,之后读出排序,再输入到stu.out中)
#include<stdio.h>
#define N 4
void main()
{
int a[N][4];
int i,j;
FILE *fp1,*fp2;
int temp,temp1,temp2,temp3;
if((fp1=fopen("stud.dat","w+"))==NULL) return;
printf("input the data:\n");
for(i=0;i<N;i++)
{ printf("input %d student:",i+1);
scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);
a[i][3]=(a[i][0]+a[i][1]+a[i][2])/3;

fprintf(fp1,"%d%d%d%d",a[i][0],a[i][1],a[i][2],a[i][3]);
}
fclose(fp1);
i=0;
if((fp1=fopen("stud.dat","r"))==NULL) return ;
if((fp2=fopen("stud.out","w+"))==NULL) return ;
for(i=0;i<N;i++)
{ fscanf(fp1,"%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);

printf("%d %d %d %d \n",a[i][0],a[i][1],a[i][2],a[i][3]);
}
for(i=0;i<N-1;i++)
{ for(j=0;j<N-i-1;j++)
if(a[j][3]<a[j+1][3])
{ temp=a[j][3];
a[j][3]=a[j+1][3];
a[j+1][3]=temp;
temp1=a[j][0];
a[j][0]=a[j+1][0];
a[j+1][0]=temp1;
temp2=a[j][1];
a[j][1]=a[j+1][1];
a[j+1][1]=temp2;
temp3=a[j][2];
a[j][2]=a[j+1][2];
a[j+1][2]=temp3;

}

}
for(i=0;i<N;i++)
fprintf(fp2,"%d%d%d%d",a[i][0],a[i][1],a[i][2],a[i][3]);
fclose(fp1);
rewind(fp2);
for(i=0;i<N;i++)
{ fscanf(fp2,"%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
printf("%d %d %d %d\n",a[i][0],a[i][1],a[i][2],a[i][3]);
}
fclose(fp2);
}


[此贴子已经被作者于2007-4-12 11:49:35编辑过]

搜索更多相关主题的帖子: 文件 
2007-04-12 11:12
快速回复:求教一个关于文件操作的问题
数据加载中...
 
   



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

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