1. 程式人生 > >假設一個文字檔案中儲存著100個整數,請將這100個整數按從小到大的順序寫到另一個檔案中

假設一個文字檔案中儲存著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函式用到的時候經常想不起來它的格式,這是一道公司筆試題目!