
/*月ごとの平均気温・降水量を構造体の配列に格納した後、 */
/*年間平均気温、年間平均降水量を求めるプログラムを作成せよ。*/
#include<stdio.h>
void main(void)
{
int i;
double total_kion, total_suiryo, av_kion, av_suiryo;
struct YEAR_DATA{
double kion[12];
double suiryo[12];
};
struct YEAR_DATA data[12] = {{3.6, 50},{4.3, 61},{7.5, 98},{13.5, 153},{18.0, 162},{21.7, 210},
{25.6, 218},{26.8, 170},{22.8, 209},{16.9, 121},{11.4, 74},{6.2, 48}};
for(i=0 ; i<12 ; i++){
total_kion += data[i].kion;
total_suiryo += data[i].suiryo;
}
av_kion = total_kion / 12;
av_suiryo = total_suiryo /12;
printf("年間平均気温 %lf\n", av_kion);
printf("年間平均降水量 %lf\n", av_suiryo);
}
構造体のところを勉強しています。
上の問題を解いてみたのですが、for文の中の2行に「浮動小数点の不正な使用」というエラーが起こってしまい、答も違っています。
どこが間違っているのか、ご指摘お願いします。

No.2ベストアンサー
- 回答日時:
Visual C++ 2003 でコンパイルした結果
誤りは以下
struct YEAR_DATA{
double kion;
double suiryo;
};
total_kion=0.0;
total_suiryo =0.0;
年間平均気温 14.858333
年間平均降水量 131.166667
No.3
- 回答日時:
for(i=0 ; i<12 ; i++){
total_kion += data[i].kion;
total_suiryo += data[i].suiryo;
}
この total_kion と total_suiryo を初期化してませんよ。
double total_kion;
と宣言した状態では、メモリ領域を確保しただけで
そのときのメモリ状態は保障されていません。
そこに += を使って書き込むと、初期値(未定)に
12ヶ月分の気温を足した値となり、答えが違ってきます。
for文の前に
total_kion = 0;
total_suiryo = 0;
を入れましょう。
No.1
- 回答日時:
struct YEAR_DATA{
double kion[12];
double suiryo[12];
};
とYEAR_DATAの要素が配列で定義されてるのに、
forの中では、
total_kion += data[i].kion;
total_suiryo += data[i].suiryo;
と、配列として参照してないからでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の要素数に変数を入れたい...
-
c言語
-
関数から配列を返すには?
-
C#で構造体の配列を持った構造...
-
ポインタのアドレスについて
-
callocで二次元配列を作成する...
-
メモリ上に配置されていないバ...
-
エラー:浮動小数点の不正な使用
-
ファイルから読み込み、配列
-
DxlibのLoadgraph()を使ったsta...
-
行きがけ順で表示するプログラム
-
配列とポインタでの書き直し(...
-
このプログラム見てもらえますか?
-
define で 配列
-
2次元配列のマスを数える方法...
-
2番目の最大値を求める
-
C言語 動的確保とポインタ参照...
-
配列のアドレス部
-
ループカウンタを使用せず、配...
-
C言語(サイズ指定のない配列)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
define で 配列
-
C#で構造体の配列を持った構造...
-
コンボボックスでデフォルト値...
-
C#で配列が空かを判定するには?
-
MFC - ダイアログボックスのPic...
-
構造体のextern方法
-
C言語において、 配列要素をひ...
-
C言語の2次元配列 容量が大き...
-
配列のアドレス部
-
配列の配列をmemcpyやmemcmpし...
-
万年カレンダーについて。
-
C言語 ファイルの指定された行...
-
この変数名はわかりにくいですか?
-
MFCのCArrayを使った二次元配列
-
fclose()でセグメンテーション違反
-
c言語
-
C言語の配列のコピーについて
-
マルチスレッド環境での配列使...
おすすめ情報