#include <stdio.h>
int main (void)
{
int T, y, z;
scanf ("%i\n", &T);
for (T; T > 0 ; --T)
{
scanf ("%i\n", &y);
}
return 0;
}
4を入力したら、さらに4入力するべきではないですか? 代わりに、5 つの整数を入力できます。他の番号でも試してみました。
#include <stdio.h>
int main (void)
{
int T, y, z;
scanf ("%i\n", &T);
for (T; T > 0 ; --T)
{
scanf ("%i\n", &y);
}
return 0;
}
4を入力したら、さらに4入力するべきではないですか? 代わりに、5 つの整数を入力できます。他の番号でも試してみました。
scanf のフォーマット文字列は次のように機能します ( http://www.cplusplus.com/reference/cstdio/scanf/を参照) 。
[形式は] ストリームから抽出された文字の処理方法を制御する一連の文字を含む C 文字列:
空白文字: 関数は、次の非空白文字の前にある空白文字を読み取って無視します ...
両方にscanf()
改行があります。したがって、最初にエンター キーを押しても、 によって無視されscanf
ます。
答えのいくつかは、ループを変更するように指示しています...これは正しくありません。ループは問題ありません。上記が頭痛の原因です。次のことを試してください。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int T, y, z;
scanf ("%i", &T);
printf("Count is= %d\n", T);
for (T; T > 0 ; --T)
{
printf("T= %d\n", T);
scanf ("%i", &y);
}
return 0;
}
編集: 標準入力のフラッシュについてコメントしてくれた Daniel Fischer に感謝します。これは現在削除されています。この説明を見つけました(fflush(stdin) の使用)。
\n
あなたのscanfから取り除くだけです