输入的数据用数组存储,不然排序的时候不好排序。
运行结果:
代码:
#include <stdio.h>
#include <stdlib.h>
#define FILENAME "269863.txt"
int main(void)
{
FILE* fp;
int a[8],i,j,t,b[8]; //为了检查读取是否成功,这里用b数组来读取,避免键盘读取的数组对结果产生影响
fp=fopen(FILENAME,"w");
if(fp==NULL)
{
printf("can't open the file");
exit(EXIT_FAILURE);
}
printf("enter 8 integers:");
for(i=0;i<8;i++)
{
scanf("%d",&a[i]);
if(i<7)
fprintf(fp,"%d ",a[i]);
else
fprintf(fp,"%d",a[i]);
}
fclose(fp);
fp = fopen(FILENAME,"r");
if(fp==NULL)
{
printf("can't open the file");
exit(EXIT_FAILURE);
}
//读取
for(i=0;i<8;i++)
fscanf(fp,"%d",&b[i]);
fclose(fp);
//降序排序
for(i=0;i<7;i++)
{
for(j=0;j<7-i;j++)
{
if(b[j]<b[j+1])
{
t = b[j];
b[j] = b[j+1];
b[j+1]=t;
}
}
}
//写入文件
fp = fopen("2237010314.txt","w");
for(i=0;i<8;i++)
{
if(i<7)
fprintf(fp,"%d ",b[i]);
else
fprintf(fp,"%d",b[i]);
}
fclose(fp);
return 0;
}
你提供的代码是要按照这个框写吗?还是可以重新写?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!