2015-11-08 284 views
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(); 
} 

第二組和第三組數字成爲常數而不是隨機數,常數通常是第一組數的最後一個數。

我知道我在設置種子時會出錯。是否有可能糾正這一點。

回答

1

更改您的第二個和第三個fprintf()調用以引用正確的變量。換句話說,從這個:

fprintf(fp2,"%d\t",j); 

這樣:

fprintf(fp2,"%d\t",k); 

,並從這樣的:

fprintf(fp3,"%d\t",j); 

這樣:

fprintf(fp3,"%d\t",l); 
+0

非常感謝。 noobish錯誤,mybad:/ – Gowtham