2015-04-01 27 views
0

C程序 我是一個完整的初學者。我想爲我的學生做一個多選詞彙練習課程。我不想創建4個單獨的變量a,b,c,d。 如何使用數組?或者什麼是更好的方法來存儲4個字符a,b,c,d,並且每次我希望程序檢查問題是否正確時都引用它們。請看看我目前使用的代碼。我真的很感激任何幫助。謝謝。我應該使用數組來存儲多選a,b,c,d的答案嗎?

int main (void) 
{  
    char s; 
    const char *answer[3]; 
    answer[0]="a"; 
    answer[1]="b"; 
    answer[2]="c"; 
    answer[3]="d"; 
    int i=0; 
    float count; 


    printf (" Listo para empezar?\n\n Please type 's' for si or 'n' for no.\n"); 
    scanf ("%c",&s); 
      if (s='s'){ 
       printf ("Bueno. Ya Empezamos!"); 
       } 

    for (count=0;count<=4;count++){ 
     printf ("1.Que significa la palabra 'conocer'\n"); 
     printf ("a.\t to like b.\t to know\t c. to do\t d. to eat\n"); 

     /*Where I need help"*/ 
     scanf ("%s",&answer); 
     if (answer =answer[1]) 
     { 
     printf ("Correcto!\n"); 
     } 
     else { 
     printf ("Equivocado!\n 'conocer'significa: to know\n") 
     }`enter code here` 
+0

'const char * answer [3];'你正在聲明一個'const char *'的數組。 – 2015-04-01 03:16:22

+0

能否解釋一點。我不明白你的意思 – 2015-04-01 03:42:02

+0

能夠引用'answer [0]','answer [1]','answer [2]'和'answer [3]'(所以,一個** 4 (4)元素**)你必須聲明它爲'const char * answer [4]',(四(4)元素) – 2015-04-02 11:15:11

回答

1

數組作爲char answer[4]聲明應該是足夠的,而不是const char *answer[3]。數組的索引從到n-1,其中n是您想要保存的項目數。所以當你聲明一個數組時,它的大小應該是n,並且當你在第i個位置訪問某個值時,它的索引實際上是i-1,這是你已經正確完成的。

下一步,因爲用戶將輸入一個字符作爲輸入。

scanf("%c",&x)應該可以正常工作。

通過做scanf("%s",&answer)您將覆蓋您存儲在實際答案數組中的值。所以你應該把輸入作爲一個單獨的字符變量,如x,就像我在上面的例子中所做的那樣。然後,您可以簡單比較if聲明中的x的值爲if(x == answer[1])

儘管我不確定您將如何生成問題並更改正確的選項,以便檢查正確答案的部分代碼將取決於此。

+0

有用的信息。但它仍然是一個錯誤。它說從const char到char的無效轉換。 – 2015-04-01 04:09:16

相關問題