假设一个文本文件中保存着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函数用到的时候经常想不起来它的格式,这是一道公司笔试题目!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值