
大学の課題で平均寿命、GDP、人口、国名のデータが入っているcsvファイルをリダイレクトで実行して、人口に応じた半径による円の描画がしたいのですが、以下に書いたプログラムでコンパイルは通るのですが結果が出力されません。原因のわかる方いらっしゃいますか?ちなみにrの値を30という風に指定すれば何の問題もなくBMP画像が生成されます。
int main( void ){
int x, y;
int offset = 100;
int life, GDP, pop;
char name[100+1];
BMPnew();
while( scanf( "%d,%d,%d,%100s",
&life, &GDP, &pop, name ) != EOF ){
x = GDP/100 + offset;
y = BMP_height - (life-50)*20;
int v, w;
int r=pop;
for( v=x-r; v<x+r; v++ ){
for( w=y-r; w<y+r; w++ ){
if( (v-x)*(v-x) + (w-y)*(w-y) < r*r ){
BMPpoint( v, w, 255, 255, 255 );
}
}
}
}
BMPsave();
return 0;
}
No.1ベストアンサー
- 回答日時:
関数 scanf の返り値について
https://linuxjm.sourceforge.io/html/LDP_man-page …
> 一致と代入が成功した入力要素の個数を返す。
> 返される値は渡された変換の個数よりも少ないこともあり...
と説明されているので、
すべての入力要素が成功したか確認してから描画しましょう
No.4
- 回答日時:
もう 1つ気になったこと.
例えば
79、56640、319929、United_States_of_America
というデータに対して,
どこにどのような大きさの円を描けば「正しい」のか
ははっきりと理解できてる?
No.2
- 回答日時:
そこら中にある BMPなんとか って関数の仕様が全く不明だし, どんなデータを与えたのかもわからんのだから, どうにも答えようがな
いんだが.BMPnew()//画像データの初期化
BMPsave()//画像データの保存
画像サイズが1,280×720で1280をBMP_width,720をBMP_heightとして定義されています
BMPpoint(x座標、y座標、赤色、緑色、青色)
データの一部は79、56640、319929、United_States_of_Americaで国ごとのデータが69個入っています。
ですが恐らく原因は7行目while文から15行目if文までにあるかと思われるのでそこを重点的に見ていただけたら嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
return 1L
-
if と配列の組み合わせ
-
【C++】関数ポインタの使い方
-
c++でサインカーブ、コサインカ...
-
ラップ関数とはどんなものですか?
-
C言語で三目並べをするプログラ...
-
入力を待たずにstdinの監視をし...
-
C言語 等差数列問題
-
C言語のプログラム作成について
-
「{ } で囲むだけ」は正しい?
-
野球の対戦成績のテーブル表示...
-
複数桁10進数の*桁目だけを抽出...
-
acceptをalarmでタイムアウトさ...
-
C言語で分からないところがあり...
-
実数の整数部,小数部の取得
-
部分行列の抜き出し(C言語)
-
C言語の関数で戻り値を返す必要...
-
windows-findstrの正規表現を使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
ラップ関数とはどんなものですか?
-
エラー 添字が付けられた値が、...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
式は定数値が必要です」という...
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
構造体の勉強中です 合計点の高...
-
数字列を3桁ごとにカンマで区切...
-
return 1L
-
std::set<int> で、ある値が何...
-
C#のコンパイルエラーCS0120に...
-
比較回数と交換回数表示について
-
C言語で分からないところがあり...
おすすめ情報