1
問題陳述:創建三個輸入文件:INPUT01.DAT,INPUT02.DAT,INPUT03.DAT,每個文件有100個隨機數。 從這些輸入文件中讀取數據,並在兩個文件中輸出奇數和偶數:ODD.TXT,EVEN.TXT,提及源文件的名稱。生成一組隨機數
int main()
{
FILE *fp1,*fp2,*fp3,*g,*h;
srand((unsigned) time(NULL));
int i, noofr, j ,k,l,num[110];
g= fopen("EVENq13.TXT","a+");
h= fopen("ODDq13.TXT","a+");
printf ("Enter number of records: ") ;
scanf ("%d", &noofr) ;
fp1= fopen ("INPUT01.TXT", "w+") ;
fp2= fopen ("INPUT02.TXT", "w+") ;
fp3= fopen ("INPUT03.TXT", "w+") ;
if (fp1 == NULL||fp2==NULL||fp3==NULL)
{
printf ("Unable to create file.") ;
getch() ;
exit (0) ;
}
for (i = 0 ; i < noofr ; i++)
{
j = rand() % 100 + 1;
fprintf(fp1,"%d\t",j);
}
for (i = 0 ; i < noofr ; i++)
{
k= rand() % 100 + 1;
fprintf(fp2,"%d\t",j);
}
for (i = 0 ; i < noofr ; i++)
{ l= rand() % 100 + 1;
fprintf(fp3,"%d\t",j);
}
fclose (fp1) ;
fclose (fp2) ;
fclose (fp3) ;
fp1 = fopen ("INPUT01.TXT", "r") ;
fp2 = fopen ("INPUT02.TXT", "r") ;
fp3 = fopen ("INPUT03.TXT", "r") ;
fprintf(g,"\n\n Nos from INPUT01 \n");
fprintf(h,"\n\n Nos from INPUT01 \n");
for(i=0;i<noofr;i++)
{fscanf(fp1,"%d ",&num[i]);
if (num[i]%2==0)
{
fprintf(g,"%d\t",num[i]);
}
else
{
fprintf(h,"%d\t",num[i]);
}
}
fprintf(g,"\n\n Nos from INPUT02 \n");
fprintf(h,"\n\n Nos from INPUT02 \n");
for(i=0;i<noofr;i++)
{fscanf(fp2,"%d ",&num[i]);
if (num[i]%2==0)
{
fprintf(g,"%d\t",num[i]);
}
else
{
fprintf(h,"%d\t",num[i]);
}
}
fprintf(g,"\n\n Nos from INPUT03 \n");
fprintf(h,"\n\n Nos from INPUT03 \n");
for(i=0;i<noofr;i++)
{fscanf(fp3,"%d ",&num[i]);
if (num[i]%2==0)
{
fprintf(g,"%d\t",num[i]);
}
else
{
fprintf(h,"%d\t",num[i]);
}
}
fclose (fp1) ;
fclose (fp2) ;
fclose (fp3) ;
fclose(g);
fclose(h);
printf ("\nFile is created. \nPress any key to continue.") ;
getch();
}
第二組和第三組數字成爲常數而不是隨機數,常數通常是第一組數的最後一個數。
我知道我在設置種子時會出錯。是否有可能糾正這一點。
非常感謝。 noobish錯誤,mybad:/ – Gowtham