前提・実現したいこと
乱数とif文を用いたプログラム
乱数で0より大きく、0.5より小さいときに、
上の乱数は0から0.5の間です と表示し、
乱数で0.5以上で1より小さいときに
上の乱数は0.5から1の間です と表示するプログラムを作成したいです。
発生している問題・エラーメッセージ
エラーメッセージはありません。 問題としては、0より大きく、0.5より小さいときに【上の乱数は0.5から1の間です】と表示されてしまい、それ以外では何も表示されないことです。
該当のソースコード
c言語
1#include <stdio.h> 2#include <stdlib.h> 3#include<time.h> 4#define rand1()((double)rand()/(RAND_MAX)) 5int main(void) 6{ 7 int i; 8 float ransu; 9 time_t ctm; 10 unsigned seed=time(&ctm); 11 srand(seed); 12 for(i=0;i<3;i++) 13 { 14 ransu=rand1(); 15 printf("%f\n",ransu); 16 if(0<=ransu<0.5) 17 { 18 printf("上の乱数は0から0.5の間です。\n"); 19 } 20 else if(0.5<=ransu<1) 21 { 22 printf("上の乱数は0.5から1の間です。\n"); 23 } 24 } 25 return 0; 26}
試したこと
elseifをelseに変えたりしましたが、そもそも範囲指定の通りに動いていないため、
どうすればよいかわかりません。
実行してみるとどのように異なるかわかりやすいです。
補足情報(FW/ツールのバージョンなど)
特になし
何も調べないで質問しているのですか。
初心者なりに色々調べました。
しかしうまくいきませんでした。
なので質問しています。
回答2件
あなたの回答
tips
プレビュー