关于C语言的一道题
文本文件num1.txt和num2.txt中各有一组用空格分隔的整数,将num1.txt和num2.txt中的整数联合排序,将其排序结果保存在num3.txt中。HHR 发表于 2014-5-11 11:16 static/image/common/back.gif
/*
文本文件num1.txt和num2.txt中各有一组用空格分隔的整数,
将num1.txt和num2.txt中的整数联合排序,
给我留点分吧{:7_163:} /*
文本文件num1.txt和num2.txt中各有一组用空格分隔的整数,
将num1.txt和num2.txt中的整数联合排序,
将其排序结果保存在num3.txt中。
*/
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
void Bubble( int *a, int n )
{
for( int i = 1; i < n; i++ )
{
for( int j = 0; j < n - i; j++ )
{
if( a > a )
{
a ^= a ^= a ^= a;
}
}
}
}
int main( void )
{
FILE *num1, *num2, *num3;
int a, i;
// 当前目录
if( ! ( num1 = fopen( "num1.txt", "r" ) ) || ! ( num2 = fopen( "num2.txt", "r" ) ) )
{
printf("文件不存在!!\n\n");
system("pause");
exit( 0 );
}
i = 0;
while( ! feof( num1 ) )
{
fscanf( num1, "%d", &a );
}
while( ! feof( num2 ) )
{
fscanf( num2, "%d", &a );
}
fclose( num1 );
fclose( num2 );
Bubble( a, i );
num3 = fopen( "num3.txt", "w+" );// 建立新文本读写
for( int j = 0; j < i; j++ )
{
fprintf( num3, "%d ", a );
}
fclose( num3 );
system( "start num3.txt" );
return 0;
} #include<stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2,*fp3;
int i,j,k,t;
char ch1,ch2;
int num;
if(!(fp1=fopen("num1.txt","r")))
{
printf("Cannot Open the file!\n");
exit(0);
}
if(!(fp2=fopen("num2.txt","r")))
{
printf("Cannot Open the file!\n");
exit(0);
}
if(!(fp3=fopen("num3.txt","w+")))
{
printf("Cannot Open the file!\n");
exit(0);
}
//读字符串(以空格为标识符)并转化为整数
i=0;
j=0;
while(!feof(fp1))
{
ch1 = fgetc(fp1);
i++;
if(ch1==32 || ch1==-1)
{
ch1='\0';
num=atoi(ch1);
j++;
i=0;
}
}
i=0;
while(!feof(fp2))
{
ch2 = fgetc(fp2);
i++;
if(ch2==32 || ch2==-1)
{
ch2='\0';
num=atoi(ch2);
j++;
i=0;
}
}
//从大到小排序
for( i=0 ; i<j-1 ; i++ )
{
for( k=i ; k<j-1 ; k++ )
{
if( num>num )
{
t = num;
num = num;
num = t;
}
}
}
for( k=0 ; k<j-1 ; k++ )
{
itoa(num,ch1,10);
fputs( ch1 , fp3 );
putc(' ' , fp3 );
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0 ;
}
页:
[1]