• ベストアンサー

C言語のプログラム

以下の問題のプログラムの回答をお願いします。 C言語のプログラムで 100 × 100 ドットで、白黒が交互になっている(市松模様という)画像を作成するプログラムを作る。と、100 × 100 ドットのカラー画像で、各点の色を乱数で設定した画像を作成するプログラムを作る。 困っているんでどうかよろしくお願いします。

  • sbiya
  • お礼率33% (1/3)

質問者が選んだベストアンサー

  • ベストアンサー
noname#119918
noname#119918
回答No.2

以下のサイトのライブラリを利用して作成してみました。 http://coconut.sys.eng.shizuoka.ac.jp/bmp/ http://coconut.sys.eng.shizuoka.ac.jp/bmp/bmp.h http://coconut.sys.eng.shizuoka.ac.jp/bmp/bmp.c itimatu()で市松模様の白黒ビットマップ、 random_img()でランダム色のビットマップ画像を生成します。 #include <stdio.h> #include <time.h> #include <stdlib.h> #include "bmp.h" const static color BLACK = {0,0,0}; const static color WHITE = {255,255,255}; void itimatu(void) { img im; im.height = 100; im.width = 100; int x , y; int color; // 0=黒 1=白 for(y=0 ; y<100 ; y++) { if(y%2 == 0) color = 0; else color = 1; for(x=0 ; x<100 ; x++) { if(color == 0) im.data[y][x] = BLACK; else im.data[y][x] = WHITE; color = (color + 1) % 2; // 色反転 } } WriteBmp("itimatu.bmp" , &im); } void random_img(void) { srand((unsigned)time(NULL)); img im; im.height = 100; im.width = 100; int x , y; for(y=0 ; y<100 ; y++) { for(x=0 ; x<100 ; x++) { im.data[y][x].r = rand() % 256; im.data[y][x].g = rand() % 256; im.data[y][x].b = rand() % 256; } } WriteBmp("random.bmp" , &im); } int main(void) { itimatu(); random_img(); return 0; }

sbiya
質問者

お礼

丁寧な回答ありがとうございました。 おかげで助かりました。本当にありがとうございます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

どのように困っているのでしょう? プログラミング環境が Windowsであれば ビットマップの作成方法などが分からないのでしょうか WinAPIならCreateBitmapを使うんですが ・・・ この引数に 幅、高さ、プレーン数、ビット数、初期ビット列 を適切に設定して呼び出せば ビットマップのハンドルを作成してくれます このビットマップを デバイスコンテキストに選択して FillRectなどを使って描画でしょう

sbiya
質問者

補足

すみません説明不足でした。 C言語初心者なんでよくわからないんですが、プログラムの中身です。 一例を挙げると #include <stdio.h> int main (void) { return (0); } のような感じに回答お願いします。よろしかったら回答お願いいたします

関連するQ&A

  • C言語のプログラムを教えて欲しいです。

    大学でC言語のプログラムを組んでくる課題が出たのですが、 どう組めばいいのかさっぱりわかりません。 構想としては、 『乱数で適当にいくつかの数を選び、キーボードから適当に打ち込んだ数字で、 乱数で出してきた数と一致すれば勝てる』というような、 宝くじ的なプログラムを組みたいと思っています。 選ぶ乱数の範囲は10000~30000で、選ぶ個数は10個ほど。 キーボードからは数字の範囲は同じで打てる数は5個ほどで考えています。 どのように組めばよいか教えてください。 できれば、このプログラムを遊ぶためのルールや、打ち込んだ数字が当たっているかなどを DOS窓上に表示する方法も教えていただけると嬉しいです。 よろしくお願いします。

  • C言語プログラムを用いた画像表示プログラム

    おはようございます。 お時間ありましたら、ご教授よろしくお願いいたします。 C言語を使って、画像の表示、画像の処理ができるプログラムを作成したいのですが、私自身、JAVAを少しかじった程度の知識しかなくなかなかうまくいきません。 やっかいなことに、ただ画像を表示させるだけでなく、JPEGライブラリを用いた(JPEG画像を読み込んで処理できる)C言語プログラムのプログラムを作成したいのですがうまくいかずご質問させていただきました。 参照できるサイト、ご自信の作られたプログラム、プログラムを経験されている方の記述など教えていただければ幸いです。 明確な質問ではないのでご回答が非常に難しいと思いますが、よろしくお願いいたします。 早朝からお忙しいと思いますが、お時間がありましたら是非ご教授よろしくおねがいします。

  • 乱数をC言語で

    乱数をC言語でプログラムしたいのですが、 rand関数を使わずに作らなきゃいけないという事なんですが 一度作ってはみたもののうまく乱数にできずに困っています できれば教えていただきたいです

  • c言語乱数について

    トランプのシャッフルと同様な操作をコンピュータで行いたい。52枚のトランプを配列に置き換え、1~52の乱数を割り当てる。ただし発生した乱数はすでに割り当て済みの数である場合は、まだ割り当てていない乱数が出るまで繰り返すものとする。 というプログラムをC言語でつくりたいのですがまったくわからないので誰か教えてください。お願いします。

  • プログラムを教えてください!

    レポートの質問です。 以下の問題のプログラムを作らなければいけないのですが、いろいろと調べてみてもまったくわかりません。 わかる方プログラム教えてください! 課題1 合同式法を用いて,区間[0,1] (区間[0,1)でも良い) の 一様乱数を100 万個生成し,以下を報告せよ.ただし,一様乱数の生成にはC 言語で自作したプログラムを用いること. (1a) 平均の数値計算結果 (1b) 標準偏差の数値計算結果 (1c) 一様乱数のヒストグラム.ヒストグラムは区間[0,1] を100 分割して 作成すること. 課題2 中心極限定理に基づく「間便法」を用いて,区間[0,1] (区 間[0,1)でも良い) の一様乱数から標準正規分布N(0,1)に従う正規乱数を100 万 個生成し,以下を報告せよ.ただし,正規乱数の生成にはC言語で自作したプ ログラムを用いること. (2a) 平均の数値計算結果 (2b) 標準偏差の数値計算結果 (2c) 正規乱数のヒストグラム.ヒストグラムは区間[-5, 5] を100 分割して 作成すること.

  • [C言語]2つのファイルを用いたプログラムについて

    こんにちは、最近C言語でファイルを扱うプログラムについて学習しているものです。 2つのファイルを用いて合計値と平均値を求めるプログラムについての質問です。 具体的には、以下に示すようなものをC言語で作成しようとしています。 例えば、以下の2つのデータファイルがあるとします。 /*(1)価格表.txt*/ わかめ 195 醤油 300 電球 298 … … … … 納豆 88 (約2000種類) /*(2)買い物リスト.txt*/ 納豆 えび 醤油 … (約500種類) この2つのファイルを用いて、「買い物リスト.txt」に書いてあるすべての商品価格の合計値と、価格の平均値を「価格表.txt」を用いて求めるプログラムをC言語で作成してみたいと考えています。 「価格表.txt」の商品数が少なければ、switch文を用いてプログラムを作成することができると思うのですが、「価格表.txt」の商品数が2000種類くらいある場合だと、どのようにプログラムを作成すればよいかわかりません。 よろしければご教授ください。OSはUbuntuを使っております。 よろしくお願いいたします。

  • 2つのファイルを用いたC言語のプログラムについて

    こんにちは、最近C言語でファイルを扱うプログラムについて学習しているものです。 2つのファイルを用いて合計値と平均値を求めるプログラムについての質問です。 具体的には、以下に示すようなものをC言語で作成しようとしています。 例えば、以下の2つのデータファイルがあるとします。 /*(1)価格表.txt*/ わかめ 195 醤油 300 電球 298 … … … … 納豆 88 (約2000種類) /*(2)買い物リスト.txt*/ 納豆 えび 醤油 … (約500種類) この2つのファイルを用いて、(2)買い物リスト.txtに書いてあるすべての商品価格の合計値と、価格の平均値を「価格表.txt」を用いて求めるプログラムをC言語で作成してみたいと考えています。 「価格表.txt」の商品数が少なければ、switch文を用いてプログラムを作成することができると思うのですが、「価格表.txt」の商品数が2000種類くらいある場合だと、どのようにプログラムを作成すればよいかわかりません。 よろしければご教授ください。OSはUbuntuを使っております。 よろしくお願いいたします。

  • C言語でヒストグラムを作成するプログラムを作りたいのですが

    C言語でヒストグラムを作成するプログラムを書いたのですが、正しい濃度値が出力されずに困っています。 ヘッダなしの2バイト画像データを読み込みヒストグラムを書き出すプログラムです。 gccを使っています。 よろしくお願いします。

  • 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

  • c言語配列拡張

    c言語配列拡張 20個の要素からなる実数配列 x[ ] から、小さい添え字からn個の要素までの 最大値を取り出すプログラムを作成する。計算する要素の数nはキーボード から入力するか乱数で決定するかは乱数により得る。 a. 乱数が奇数の場合はキーボードから入力する。 b.乱数が偶数の場合この乱数の数を用いる。 誰が知ったら教えてください!

専門家に質問してみよう