一个文件输出问题,请求帮忙
对不起,我分实在太少。实在报歉。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int cnt=1;
//读入文本文件
void readData( int *A )
{
int i; //计数变量
FILE *fp;
if( (fp=fopen("in.txt", "r") )==NULL )
{
printf("\n*****不能打开文件*****\n");
getch();
exit(0);
}
for( i=0;i<200;i++ )
{
fscanf( fp,"%d ", &A[i] );
}
fclose( fp );
}
//输出文本文件
void Out_Data( int *A )
{
int i;
FILE *fp;
fp=fopen( "out.txt", "w" );
for( i=0;i<200;i++ )
fprintf( fp,"%d ", A[i] );
}
//排序输出
void Condi_Decide( int *A, int *B )
{
int i,k,node;
int temp;
B[0]=A[0];
for( i=1;i<200;i++ )
{
temp=A[i]%10;
if( (temp+1 )%2!=0 )
{
cnt++;
node=A[i];
k=i-1;
while( k>=0 && node>B[k] )
{
B[k+1]=B[k];
k--;
}
B[k+1]=node;
}
}
}
// 随机输出200个四位数
void Srand()
{
time_t t;
int i;
FILE *fp;
srand( (unsigned) time(&t) );
if( (fp=fopen("in.txt","w" ) )==NULL )
{
printf("\nCon't open file.");
getch();
exit(0);
}
for( i=0;i<200;i++ )
{
fprintf( fp, "%d ", rand()%10000 );
}
}
void main()
{
int A[200];
int B[200]={0};
int i;
// Srand(); //如果加上这句就出现错误。
readData( A );
for( i=0;i<200;i++ )
{
printf("%d ", A[i] );
if( i%10==0 )
printf("\n");
}
Condi_Decide( A,B );
Out_Data( B );
printf("\n满足条件的总数共=%d.\n", cnt );
}
我想输出数字到文件中,满足条件尾数是0,2,4,6,8 .但现在我如果我先建好读入文件运行就正确。
如果我运行的时候建立文件是不正确。请问这是怎么回事。我如何来达到我随机建立的要求.