-2

重複の可能性:
C では、rand() から特定の範囲の数値を取得するにはどうすればよいですか?
範囲内の乱数を生成しますか?

rand() 関数を使用して、その乱数の範囲を含める方法にこだわっています。印刷するためだけに、67.00 から 99.99 までの乱数が必要です。

これは私が試したものですが、失敗しました...

#include <stdio.h>
#include <stdlib.h>

int main(void)

{
    int x = rand();

    if(x>=67.00)
    if(x<=99.99)
          printf("%d\n",x);
        else
        printf("not in range");
}   
4

1 に答える 1

3

結果が範囲内にあるかどうかを確認する代わりに、結果が必要な範囲内になるように強制できます。

int HIGH = 100;
int LOW = 67;
int rnd = LOW + (rand() % (HIGH-LOW));

の値rndは から までの範囲にLOWありHIGH-1ます。

数値を範囲内に強制したくない場合は、条件を次のように変更します

if(x>=67.00 && x<=99.99)

現在、elseは inner に属しているため、数が より小さい場合if、2 番目は発生しません。printf67

于 2013-01-28T00:33:26.323 に答える