2017-11-15 11 views
-2

助けてください。私はいくつかのテスト結果のためのアプリケーションを作るように割り当てられました。なぜ私はケース2で入力したものを印刷することができないのですか?私は他のアプローチを試しましたが、うまくいきません。これは私がそこに行くことができる最も近いです。どんな助けもありがとう。スーパー感謝+ _ +アレイをスキャンしてCの別の場所に割り当てます

これは私のコードです:それはケース2でループに入力することは決してありませんinitialization.Hence時に0に設定されている変数iの値に変更はありません

int main(){ 
    int option; 
    char namamurid[30][15]; 
    int i=0,j=0; 
    int listening[15]; 
    int reading[15]; 
    int essay[15]; 
    int score[15]; 

    do{ printf("\"Smart English\" Course Center\n********************************\n"); 
     printf("1.Add new data\n2.View data\n3.View summary\n4.Exit\n\n"); 
     printf("your option[1..4]: "); 
     scanf("%d",&option); 
     fflush(stdin); 

     switch(option){ 
      case 1: 
       do{ 
        printf("Input student's name[1..25 char]: "); 
        scanf("%[^\n]s",namamurid[i]); 
        fflush(stdin); 
       }while(strlen(namamurid[i])<1 || strlen(namamurid[i])>25); 

       do{ 
        printf("Correct answer for listening section[0..20]: "); 
        scanf("%d",&listening[i]); 
        fflush(stdin); 
       }while(listening[i]<0 || listening[i]>20); 

       do{ 
        printf("Correct answer for reading section[0..30]: "); 
        scanf("%d",&reading[i]); 
        fflush(stdin); 

       }while(reading[i]<0 || reading[i]>30); 

       do{ 
        printf("Correct answer for essay section[0..25]: "); 
        scanf("%d",&essay[i]); 
        fflush(stdin); 

       }while(essay[i]<0 || essay[i]>25); 
       break; 


      case 2: 
       printf("Name\t\tListening\tReading\tEssay\tScore\tGrade\n"); 
       for(j=0;j<i;j++) 
       { 
        printf("%-1s\t\t%d\t%d\t%d\t%d\n",namamurid[j],listening[j],reading[j],essay[j],score[j]); 
       } 

       break; 
     } 
    } while(option<1 || option>4 || option !=4); 

    getchar(); 
    return 0; 
} 
+2

%[^ \ n] s "' - > '"%[^ \ n] "': 's'はscanset指令の一部ではありません。また、 'fflush(stdin)'は、標準に従って動作が定義されていない(動作はいくつかのシステムで定義されていますが)ことに注意してください。入力ストリームに残っている余分な文字を処理する良い方法があります。 ''%[^ \ n] ''という前の改行文字を使用するために、書式文字列に先行するスペースを追加することで逃げることができます。 –

+0

まず、ループやsthにi ++がないようです。 –

+0

お返事ありがとうございます。私はそれを修正しました。それほど感謝しない<3 – Tha

答えて

0

関連する問題