假設一個文字檔案中儲存著100個整數,請將這100個整數按從小到大的順序寫到另一個檔案中
假設一個文字檔案中儲存著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函式用到的時候經常想不起來它的格式,這是一道公司筆試題目!