-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;
}
%[^ \ n] s "' - > '"%[^ \ n] "': 's'はscanset指令の一部ではありません。また、 'fflush(stdin)'は、標準に従って動作が定義されていない(動作はいくつかのシステムで定義されていますが)ことに注意してください。入力ストリームに残っている余分な文字を処理する良い方法があります。 ''%[^ \ n] ''という前の改行文字を使用するために、書式文字列に先行するスペースを追加することで逃げることができます。 –
まず、ループやsthにi ++がないようです。 –
お返事ありがとうございます。私はそれを修正しました。それほど感謝しない<3 – Tha