ページ 11

よろしくお願いします

Posted: 2011年6月24日(金) 14:30
by first
5つの整数を入力させ、その5つ値を配列に格納し、5つそれぞれを2倍で表示する。
というプログラムを作っているのですが、2倍の表示ができません。
どなたか教えていただけないでしょうか。自分で考えたソースを下に張っておきます。

#include "stdio.h"

int main(void)
{
int i, j, k, l, m, str[5];

printf("整数を5つ入力してください\n");

scanf_s("%d\n", &i);
scanf_s("%d\n", &j);
scanf_s("%d\n", &k);
scanf_s("%d\n", &l);
scanf_s("%d\n", &m);

str[0] = i;
str[1] = j;
str[2] = k;
str[3] = l;
str[4] = m;

for(int n = 0; n < 5; n++){
printf("%d ", str[n] * 2);
}

for(; ;);
return 0;
}

Re: よろしくお願いします

Posted: 2011年6月24日(金) 15:05
by naohiro19
scanf_sの引数に\nが入っているのが問題です。

詳しくはscanf_s、_scanf_s_l、wscanf_s、_wscanf_s_lをご覧ください。

Re: よろしくお願いします

Posted: 2011年6月24日(金) 15:09
by first
ありがとうございました。無事に表示することができました。

Re: よろしくお願いします

Posted: 2011年6月24日(金) 15:27
by aquashooting
firstさん、少し質問してもよろしいでしょうか?
最後にあるfor(;;);は、いらないのではないかと思うのですが
どうでしょうか?

Re: よろしくお願いします

Posted: 2011年6月27日(月) 10:15
by first
VisualStadioを使っているのですが、for(; ;);を使うとすべての処理を終えても実行画面が消えないんですよね。
ですので、もしfor(; ;);を使わないならば実行して2倍の値が表示されたときにすぐ画面が消えてしまって実行結果がわからないということがありますのでfor(; ;);を使わせていただいてます。

Re: よろしくお願いします

Posted: 2011年6月27日(月) 16:38
by ISLe
first さんが書きました:VisualStadioを使っているのですが、for(; ;);を使うとすべての処理を終えても実行画面が消えないんですよね。
コントロールキーを押しながらF5キーを押して実行しても、すぐにウインドウが閉じてしまうということですか?