1

これがスタックオーバーフローの質問の基本ではないことを願っています。しかし、配列内の成績の量を決定しようとしているクエリがあり、それらの各成績のユーザー入力を求めています。次のようになります。

#include <stdio.h>


int main (void)
{
int size;

printf ("Enter The Amount Of Grades In Your Array: ");
scanf("%i", &size);/*Stores Amount Of Grades In The Array*/

char myGrades[size];
int i;

for (i = 0; i < size; ++i)
  {
  printf ("Enter the grade:");
  scanf ("%c",&myGrades[i]);
  }

return 0; 
}

int iの後の最初の行を読むことを期待しています"Enter The Grade:"が、代わりに次のようになります。"Enter The Grade:""Enter The Grade:"

最初の「成績を入力してください」で最初に入力を求めずに、2回目に成績を入力すると表示される理由がわかりません。任意の提案をいただければ幸いです!

4

1 に答える 1

5

最初scanfは置き去り\nにし、次にEnterキーを押したかのように自動的に再度読み取ります(したがって、改行は配列に格納されます)。代わりにを使用してこれを回避できます" %c"。スペースは、必要な文字の前の改行またはスペースを削除します。

于 2013-03-08T02:24:28.837 に答える