- ベストアンサー
C言語
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1.得られた乱数を 100で割った余り + 1 を使う。 問題点。もともと、32768 ~ 32799 が出ないので、69以上の出現率がちょっと減るかもしれない 2.得られた乱数が、1~100かどうかチェックして、範囲に入っていれば、それを使う。 入ってなければ、もう一度乱数を取得する。 問題点→かなり無駄な乱数が出るので、時間がかかるかも →乱数の最下位桁にはバラツキがある場合があるので、問題かも。 3.得られた乱数を10で割った後、2のチェックを行う。 問題点→ 2.と同じ。もしかしたら時間がかかるかも。 乱数の質はかなりいい気がする(未確認) 4.乱数を2個生成して、それぞれの10の位の数字(トータルで2個)を、最終結果とする。 結果は、0 ~ 99 なので、+1することが必要。 こんなところか。
その他の回答 (1)
お礼
回答ありがとうございました。
関連するQ&A
- C言語について
ソートを使い入力した数値を並び替える。昇順、降順を選べるようにする。 順位を付けるた。ただし、複数同位があった場合にはその個数分順位が変更する。 このような問題なのですが 入力個数の部分までは自力でできたのですが、ソートを習っていないのでこの後がよく分かりません。 下のような実行結果になるようだれかわかる人お願いします。 # include <stdio.h> int main(void) { int a[100],kai=0,sentaku; printf("整数を入力(CTRL+dで終了) >> "); while(1){ if(scanf("%d",&a{kai}) == EOF )break; kai=kai+1; printf("整数を入力(CTRL+dで終了) >> "); } printf("入力個数%d回\n",kai); return 0; } 実行結果 数値>>1 数値>>3 数値>>-1 数値>>-3 数値>>10 数値>>3 数値>> 入力回数:4回 1:昇順、2:降順>>1 NO.1:-3 NO.2:1 NO.3:3 NO.3:3 NO.5:10
- 締切済み
- C・C++・C#
- ランダム関数の足し算とかけ算
検索しても情報が見つからなかったので教えてください。 Excelには、-1~+1までの間でランダムに数値を返す、RND関数がありますが、 RND + RND が返す値は-2~+2までの間でランダムな数となるのでしょうか? また、RND × RND が返す値はどのような分布になるのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- c言語のプログラムで
c言語で 2つの整数を読み込んで小さいほうの数以上で大きいほうの数以下の整数をすべて加えた値を表示するプログラム で最後の表示の仕方がわかりません。 実行結果は 整数1:37 整数2:28 28以上37以下の全整数は325です。と表示されるはずです。 この表示の3行目の28と37の表示がどうやればよいのかわかりません。 #include <stdio.h> int main(void) { int a, b; int sum=0; printf("整数1:"); scanf("%d",&a); printf("整数2:"); scanf("%d",&b); if(a>b) do{ sum=sum+b; b=b+1; }while(b<=a); else do{ sum=sum+a; a=a+1; }while(a<=b); printf("%d以上%d以下の全整数の和は%dです。",a,b,sum); return(0); } 全整数の表示はできます。 do文の中でa=cとかにしてやってみましたが、うまくいきませんでした。 お願いします。
- ベストアンサー
- その他(プログラミング・開発)
- c言語超初心者です。教えてください
基本的だと思いますが教えてください。 #include <stdio.h> int main(void) { int na, nb: puts("二つの整数を入力してください."); printf("整数A:”); scanf("%d",&na); printf("整数B:”); scanf("%d",&nb); printf("それらの平均は%fです。\n,(na+nb)/2.0); return(0); } これでintの形で最後のprintfが%fなのですがintは%dとなるはずなのですがこれは2。0という実数値で割るから答えは実数値になりますよ。という意味で%fとしたのでしょうか?確かにこうしないと正しい値がでてこないのです。教えてください。
- ベストアンサー
- C・C++・C#
- c言語について
C言語で、二つの整数値を読み込んで、前者の値が後者の何%であるかを実数で表示するプログラムを作成しようとして以下のコードを書きました。 #include <stdio.h> int main(void) { int n1, n2 ; puts("二つの整数を入力してください。") ; printf("整数A : \n") ; scanf("%d" , &n1) ; printf("整数B : \n") ; scanf("%d" , &n2) ; printf("Aの値はBの%f%%です。\n" , (double)(n1 / n2) * 100) ; return 0 ; } 上記コードを実行すると、0.000000%のような結果になります。 そこで、最後のキャスト演算子を使用した後の式で(n1 / n2) * 100がまずいのかなと考え、n1 / n2 * 100にしたら上手くいきました。 なぜ、上記コードだと上手くいかないんでしょうか?
- ベストアンサー
- C・C++・C#
- C言語の課題で困っています。その1.四則演算
二つの整数値を読み込んで、前者を後者で割り、その結果の商と余りを表示するプログラムを作成。 実行例にあるよう、ゼロで割るような場合への対処も考慮する。 実行例1: 整数の除算を行います。整数を入力してください。 整数A:13 整数B:5 13 ÷ 5 = 2 あまり 3 実行例2: 整数の除算を行います。整数を入力してください。 整数A:10 整数B:0 0でわることはできません! (注)プログラム実行時にキーボードからどんな整数を入力してもいいように作成すること。 という課題に取り組んでいますが、途中までしか記述できません。 どなたか助けてください。 下記が途中までの記述です。 /*二つの整数値を読み込んで、前者を後者で割り、その結果の商と余りを表示*/ #include <stdio.h> int main(void) { int na, nb; printf("shimasaki kazunori \n"); puts("整数の除算を行います。整数を入力してください。: \n"); printf("整数A:"); scanf("%d", &na); printf("整数B:"); scanf("%d", &nb); printf("na ÷ nb = %d あまり %d \n", na / nb, nb, na % nb); return(0); }
- ベストアンサー
- C・C++・C#
- C言語についてなんですが
プログラムの作成で分からないところがあります。 「二つの整数値を読み込み、小さいほうの数以上で大きい数以下の 整数を全て加えた値を表示するプログラムをdo文を使って 作成せよ。」 下の図のようにしたいです。 2つの整数を入力せよ。 整数A:37 整数B:28 28以上37以下の全整数の和は325です。 よろしくお願いします。
- 締切済み
- C・C++・C#
お礼
回答ありがとうございました。