C語言練習-文件讀寫02

C語言練習-文件讀寫

要求:

假設一個文本文件中保存着100個整數,請將這100個整數按從小到大的順序寫到另一個文本文件中去,並且在新文件中每10個整數佔一行。源文件名和目標文件名通過命令行參數獲取。

分析: 主要包括三個任務

1.讀取源文件中的所有數並臨時存在數組中

2.使用排序算法進行排序(本題選用冒泡排序)

3.將排序後的寫到文件中去

代碼:

#include<stdio.h>
#include<stdlib.h>
#define size 100

main(int argc,char* argv[])
{
	int a[size];
	FILE *fin ,*fout;
	
	if(argc!=3)
	{
		printf("You input an invalid file name\n");
	}
	
	fin=fopen(argv[1],"r+");
	fout=fopen(argv[2],"w");
	
	for(int i=0;i<size;i++)
	{
		fscanf(fin,"%d",&a[i]);
	}
	
	for(int i=0;i<size-1;i++)
	{
		for(int j=0;j<size-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	
	for(int i=1;i<=size;i++)
	{
		fprintf(fout,"%d\t",a[i-1]);
		if(i%10==0)
		{
			fputc('\n',fout);
		}
		
	}
	
	fclose(fin);
	fclose(fout);
 } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章