- ベストアンサー
C言語プログラム 作ってくれませんか?m(__)m
C言語 プログラム 1~45の数字の中からランダムに15ペアの組み合わせと残りの数字を表示するようなプログラムをつくりたいのですが,どなたか作ってくれませんか? 以下のような表示例みたいなのが,嬉しいです。お願いします。 Ex. ./ random 6 -27 5 -22 4 -19 1 -21 15 -14 33 -40 17 -36 37 -28 13 -42 23 -41 34 -24 7 -35 38 -11 12 -8 26 -18 43 9 3 25 16 2 44 29 30 39 45 10 20 32 31
- tx9992
- お礼率45% (15/33)
- C・C++・C#
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
乱数とソートが出来れば作れると思う。 #include <stdio.h> #include <stdlib.h> typedef struct _h_t{int n; double r;}h_t; int cmp(const h_t *a,const h_t *b); int main(){h_t h[45];int i;srand((unsigned)time(NULL));for(i=0;i<45;i++){h[i].n=i+1;h[i].r=(double)rand()/RAND_MAX;}qsort(h,45,sizeof(h_t),(int(*)(const void*,const void*))cmp);for(i=0;i<15;i++){printf("%d-%d\n",h[i*2].n,h[i*2+1].n);}for(i=30;i<45;i++){printf("%d\n",h[i].n);}return 0;} int cmp(const h_t *a,const h_t *b){if(a->r<b->r)return -1;else if(a->r>b->r)return 1;return 0;}
- 参考URL:
- http://codepad.org/ZhYwjH4B
その他の回答 (2)
- jacta
- ベストアンサー率26% (845/3158)
作りたいけれど作ってほしいという微妙な心理が盛り込まれた質問ですね。 Cのプログラムは自分で書いていただくとして、ヒントをかねてC++のプログラムを作ってみました。 #include <array> #include <algorithm> #include <numeric> #include <iostream> #include <iterator> #include <boost/iterator/counting_iterator.hpp> int main() { std::array<int, 45> a; std::copy(boost::make_counting_iterator<int>(1), boost::make_counting_iterator<int>(46), a.begin()); std::random_shuffle(a.begin(), a.end()); std::for_each(boost::make_counting_iterator<int>(0), boost::make_counting_iterator<int>(15), [&a](int i) { std::cout << a[i * 2] << '-' << a[i * 2 + 1] << std::endl; }); std::cout << std::endl; std::copy(a.begin() + 15 * 2, a.end(), std::ostream_iterator<int>(std::cout, "\n")); }
お礼
これを基に頑張ります。 ありがとうございました。
- asuncion
- ベストアンサー率33% (2126/6288)
>プログラムをつくりたいのですが,どなたか作ってくれませんか? この文に矛盾を含んでいることにお気づきでしょうか。 プログラムを作りたい、というのは、質問者さんの意志ですよね。 ところが、すぐ後では、だれかに作ってほしい、と書かれています。 ご自分でコードを書きたいのかそうではないのか、どちらなんでしょうか。
お礼
そうですね。 作ってほしかったです。 日本語気をつけます。
関連するQ&A
- C言語でプログラムを書いています。
C言語でプログラムを書いています。 その中で、サンプルデータの入ったファイルを読み込み、 その中身を配列を用いて行列として整理したいのですが、どのような命令が必要でしょうか。 ファイルの中身は、以下のようになっています。 1:0.111 2:0.222.....600:0.999 ・ ・ ・ 1:0.122 2:0.233.....600:0.998 「数字:」の部分は使用しないため、実際はコロン以下の数値で組みたいと考えています 詳しいサイトの紹介でもかまいませんので、よろしくお願いします
- ベストアンサー
- C・C++・C#
- C言語のプログラムを教えて欲しいです。
大学でC言語のプログラムを組んでくる課題が出たのですが、 どう組めばいいのかさっぱりわかりません。 構想としては、 『乱数で適当にいくつかの数を選び、キーボードから適当に打ち込んだ数字で、 乱数で出してきた数と一致すれば勝てる』というような、 宝くじ的なプログラムを組みたいと思っています。 選ぶ乱数の範囲は10000~30000で、選ぶ個数は10個ほど。 キーボードからは数字の範囲は同じで打てる数は5個ほどで考えています。 どのように組めばよいか教えてください。 できれば、このプログラムを遊ぶためのルールや、打ち込んだ数字が当たっているかなどを DOS窓上に表示する方法も教えていただけると嬉しいです。 よろしくお願いします。
- 締切済み
- C・C++・C#
- C言語でのプログラムの作り方
はじめまして。C言語初心者の中学一年生です。 C言語でプログラムを作ろうと思ったのですが、やり方がわかりません。 ”hello”と表示するプログラムの作り方を教えてください。 使用しているコンパイラは"Visual C++ 2010"です。パソコンはWindows xpです。 中学生でも分かるように教えてください。 エディエタ、やソースプログラムなどの用語についても教えてくださると嬉しいです。
- ベストアンサー
- C・C++・C#
- C言語 丸(●)の作り方
C言語で配列の中に●のデータを入れたいのですが ex) char BOX[6][6]={ {0,0,1,1,0,0}, {0,1,1,1,0,0}, {1,1,1,1,1,1}, {1,1,1,1,1,1}, {0,1,1,1,1,0}, {0,0,1,1,0,0}, } このように入れるためのプログラムが教えてほしいです
- 締切済み
- C・C++・C#
- C言語でプログラムを書きたいんですが…
1から6までの好きな数字を入力するたびに、“大当たり”が1/6の確率、“当たり”が1/3の確率、“はずれ”が1/2の確率で、福引きができる。 というプログラムをC言語で書きたいんですが、どんな感じに書いたらいいか思い浮かびません。 どなたか詳しい方教えてください。
- ベストアンサー
- C・C++・C#
- 文字列を読み上げるプログラム(C言語)
C言語で、ランダムに文字列(数字と文字の混合)を指定した文字数だけ生成し、それを読み上げるプログラムを作ろうと思っています。この内、読み上げるプログラムをどのように書けば良いのかわかりません。自分で音声を録音してその音声ファイルを読み込んで再生するという方法しかないのでしょうか?もっと良い方法をご存知でしたらご助言頂ければ幸いです。OSはUbuntuです。よろしくお願いします。
- 締切済み
- C・C++・C#
- C言語の入力方法について
C言語で以下のようなプログラムをつくるとします。 ・5個の数字を入力し、合計を求める。 その際、コマンドプロンプト上に実行結果が下記のようにでるとします。 例: 1個めの数字を入力してください→ ここで1を入力すると 例: 1個めの数字を入力してください→1 2個めの数字を入力してください→ このようになったときに「やっぱり1個めの数字を変更したい」 となったときに変更する手段はあるのでしょうか?
- ベストアンサー
- C・C++・C#
- プログラム言語って何があるの?
私、プログラム言語について調べています。 ウィキペディアをみてもたくさんあって、そこからまたリンクがたくさんあってどこでどのように区切っていいのか分かりません。そこで皆さんに質問したいのですが、プログラム言語はどのようなものがありますか? 大まかにプログラム言語の総称があってその次に (1)機械語(マシン語) (2)アセンブラ言語 高水準言語これの中に (3)インタプリタ言語 (4)コンパイラ言語がありますが、 (1)~(4)のそれぞれの詳細を教えてください。例:BASIC、C等 またこの枠に入らないプログラム言語がありましたら教えてください。 とってもマイナーなものでも構いません。出来ればURL欲しいです。 お願いします。m(_ _)m
- ベストアンサー
- その他(プログラミング・開発)
- C言語でサイコロのプログラムを作ってみたのですが
まず、以下のような”実行するたびに1~6の数字をランダムに出力するプログラム”を 作ってみたのですが、特定の数字が出てこないのです。 例えば、1と4、2と5、3と6 が出ない ここで気がついた事は、 1、出ない目の2数の差は3であること。 2、乱数自体を表示させたところ、ちゃんと1秒毎に乱数は変わっている。こちらには問題はない 3、約1分間隔で、出ない数字の組み合わせが変わる。 (例えば 1,3,4,6,1,6,3,6,4(2と5が出ない) →1分間実行し続けると・・・ 2,3,6,5,3,2,2,6(1と4が出ない)) この原因は一体なんなのでしょうか・・・ とても気になって仕方がありません。わかる方教えてください。 以下、ソースコードになります #include<stdio.h> #include<time.h> #include<stdlib.h> int func(void); int main(void){ int number=0; number=func(); //サイコロの目の表示 printf("%d\n",number); return 0; } int func(){ //乱数の初期化 srand((int unsigned)time(NULL)); //サイコロの目をランダムで出力し、返す return rand()%6+1; } プログラムの仕組みは パソコンから現在の歴時刻を元に乱数の初期値を変更 ↓ rand関数で適当な値を受け取り、6で割った余剰+1を計算し値を返却する
- ベストアンサー
- C・C++・C#
お礼
ありがとうございました。 これを基に頑張って作ってみます。