C语言问题,在先等。。。

来源:百度知道 编辑:UC知道 时间:2024/05/04 09:25:48
用C语言编程,和文件有关。
我的程序,请问,哪儿出错了?
/*先建立一个实数的数据文件bb.dat,数据之间用空格分开,然后将数据排序后按%6.2f格式输出到cc.dat文件中*/
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
int a[10],t,j,i=0;
fp1=fopen("f:\\aaa.dat","r");
fp2=fopen("f:\\cc.dat","w");
while (!feof(fp1))
{
for(i=0;i<10;i++)
fscanf(fp1,"%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(a[j]<a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
}
}
for(i=0;i<10;i++)
fprintf(fp2,"%6.2f",a[i]);
fclose(fp1);
fclose(fp2);
}
/*先建立一个实数的数据文件bb.dat,数据之间用空格分开,然后将数据排序后按%6.2f格式输出到cc.dat文件中*/
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
float a[10],t;
int j,i;
fp1=fopen("f:\\bb.dat","r");
fp2=fopen("f

你按int把数读进来,排序完,按float输出,就不对了。
要不就按float读数,要不就按int输出。

fscanf(fp1,"%d",&a[i]);
既然a是double类型
那这句就应该是
fscanf(fp1,"%lf",&a[i]); 了吧