ページ 11

乱数の場所

Posted: 2015年7月24日(金) 03:09
by anko
5つ分の配列を用意し、乱数を入力。
入力した結果と最小値を出力

乱数をどのように入れればいいですか?


[code c言語]
#include <stdio.h>
int main(void)
{
int i;
int min;
int a[5];

for (i = 0; i < 5; i++)
{
printf("%d個目の実数を入力せよ: ", i + 1);
scanf("%d", &a);
}
min = a[0];
for (i = 1; i < 5; i++)
{
if (a < min) min = a;
}

printf("\n\n入力されたのは %d,%d,%d,%d,%d\n", a[0],a[1],a[2],a[3],a[4]);
printf("\nこの中の最小値は %d です。\n", min);

return 0;
}
[/code]

Re: 乱数の場所

Posted: 2015年7月24日(金) 07:35
by box
anko さんが書きました: 乱数をどのように入れればいいですか?

コード:

	for (i = 0; i < 5; i++)
このfor文の直前あたりで乱数のための初期化を1回だけ行ないます。
anko さんが書きました:

コード:

		scanf("%d", &a[i]);
このscanfのかわりに、乱数を発生させる関数を使って、aに値を入れます。
anko さんが書きました:

コード:

	printf("\n\n入力されたのは %d,%d,%d,%d,%d\n", a[0],a[1],a[2],a[3],a[4]);
仮に配列の要素が1000個の場合でも、このように書きますか?本題とはあまり関係ないですけど。

Re: 乱数の場所

Posted: 2015年7月24日(金) 18:41
by みけCAT
オフトピック
anko さんが書きました: printf("%d個目の実数を入力せよ: ", i + 1);
scanf("%d", &a);

プログラム上は整合が取れているから問題は無いのだが、
どうして「実数を入力せよ」と出力しているのに実際に受け取る入力は整数に限定されているのだろうか…?