假设一个文本文件中保存着100个整数,请将这100个整数按从小到大的顺序写到另个文本文件中去,并且在新文件中每十个整数占一行,源文件名和目标文件名通过命令行参数获取。程序如下:
#include <stdio.h>
void main(int argc, char **argv)
{
FILE *fin,*fout;
int a[10],i,j,temp;
if(argc<3)
{
printf("You forgot to enter a filename");
return;
}
fin = fopen(argv[1],"r");
fout = fopen(argv[2],"w");
for (i = 0;i<=99;i++)
fscanf(fin,"%d",&a[i]);
for (i=0;i<100;i++)
{
printf("%d ",a[i]);
}
for (i=0;i<99;i++)
for(j=0;j<99-i;j++)
if (a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
for (i=0;i<100;i++)
{
if(i%10==0)
fprintf(fout,"%s","\n");
fprintf(fout,"%d ",a[i]);
}
printf("冒泡排序之后:");
for (i=0;i<100;i++)
{
printf("%d ",a[i]);
}
fclose(fin);
fclose(fout);
}
在程序中我们使用的是冒泡排序算法进行排序,题目中的fscanf与fprintf函数用到的时候经常想不起来它的格式,这是一道公司笔试题目!