2014-12-04 94 views
0

我有這個問題我一直試圖讓這個過去7小時完成,但我沒有得到任何地方。我嘗試了很多選擇,但我似乎總是失敗。如果有人幫我解決這個問題,我會很高興,這樣我就可以看到我出錯的地方。我做了一個小小的嘗試,但進一步我去得最糟糕。如果有人給我一些指導,我會很高興。這是程序應該是什麼樣的。小c編程幫助需要

  1. 只有當它是一個浮點數時,我必須輸入整數才能顯示錯誤,而且我需要再試一次。最小數量的數字是10.

  2. 一旦輸入所有數字,它應顯示數字的百分比是偶數。

  3. 在任何時候,我可以通過鍵入「exit」

    int i; 
    for(i=1; i<=10; ++i) 
    
    printf("Enter 10 integers: "); 
    scanf("%d",&i); 
    printf("Enter the next integer or type exit to end the program: %d",i); 
    
    system("PAUSE");  
    return (printf); 
    
+1

'1。將數字存儲在數組中'... 2.使用if-else語句!或者,如果你不想使用數組,那麼,創建一個計數變量來檢查偶數! – 2014-12-04 12:48:15

+1

@shekharsuman 3. print answer – 2014-12-04 12:49:26

+1

你是否熟悉'grep'?你可以想象一下,如果'grep'表現爲首先提示「輸入正則表達式」,然後提示「輸入一個文件進行搜索」?這會使它幾乎無用。請考慮改變你的界面。 – 2014-12-04 12:50:55

回答

3

既然你問了指導,而不是一個完整的工作解決方案退出程序,在這裏不用。

首先,你現在有

for(i=1; i<=10; ++i) 

printf("Enter 10 integers: "); 
scanf("%d",&i); 

for會就在下一行循環,除非你使用大括號,即它會打印「進入......」 10次:

for(i=1; i<=10; ++i) 
    printf("Enter 10 integers: "); 

scanf("%d",&i); 

這可能有助於習慣於將所有你想要的東西放入花括號中(即使是單線):

for(i=1; i<=10; ++i) 
{ 
    printf("Enter 10 integers: "); 
    scanf("%d",&i); 
    //... 
} 

人們經常(有很好的理由在c)從0開始:

for(i=0; i<10; ++i) 
{ 
    printf("Enter 10 integers: "); 
    scanf("%d",&i); 
    //... 
} 

如果你組織你的代碼一樣,它可以幫助拉了get_valid_input功能

for(i=0; i<10; ++i) 
{ 
    printf("Enter 10 integers: "); 
    get_valid_input(); //what do you intend to do with this? 
    //... 
} 

int get_valid_input() 
{ 
    int i; 
    scanf("%d",&i); //how do they type "exit"? 
    //.. 
} 

這需要思想 - 但它應該返回一個int? 然後,您可以將它們存儲在某個地方。 但是你可以隨時跟蹤偶數的百分比。 此外,您可以隨時按下「退出」(鍵入字符串或按下一個鍵?),因此您需要能夠指出這一點。

不要忘記打印結果,一旦你完成了。 (留給讀者練習)

+0

好的,我會這麼做,非常感謝你 – iLatvian 2014-12-04 13:08:17

0
int i, v, n=0, even; 
int array[10] = {0}; 
char buff1[32], buff2[32]; 

printf("Enter 10 integers: \n"); 
for(i=1; i<=10; ++i){ 
    printf("Enter the next integer or type exit to end the program %d:\n", i); 
    fgets(buff1, sizeof buff1, stdin); 
    strcpy(buff2, strtok(buff1, " \t\n"));//trim 
    if(strcmp(buff2, "exit")==0) 
     break; 
    if(1!=sscanf(buff2, "%d%s", &v, buff1)){ 
     printf("invalid input\n"); 
     --i; 
     continue; 
    } 
    array[n++] = v; 
} 

for(even=i=0;i<n;++i){ 
    printf("%d ", array[i]); 
    if((array[i] & 1) == 0) 
     ++even; 
} 
printf("\n"); 
if(n) 
    printf("Even proportions : %.1f%%\n", 100.0*even/n); 
system("PAUSE"); 
return 0;