- 締切済み
C++の配列についてなんですが
#include <iostream> using namespace std; int main() { int i,goukei=0; int kokugo[5]; float heikin; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n"; cin >> kokugo[i]; goukei = goukei + kokugo[i]; } heikin = (float)goukei/5.0; cout << "平均点は" << heikin << "点です\n"; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i]; cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n"; } return 0; } これを基に 数学の点数も入力する 数学の平均も出力する 国語と数学の総合的な平均点も出力する ようにするにはどうすればいいんですか?
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- cyacya2000
- ベストアンサー率54% (39/71)
このようなときには配列の要素を構造体にすると良いです。構造体でぐぐれば参考になるサイトを沢山見つけることができます。調べてみてください。
- redfox63
- ベストアンサー率71% (1325/1856)
>> こういう風にやったら出来たんですが、これじゃダメなんですか? とおしゃられても われわれには分かりませんよ この問題を出題した方に この回答でよいのかを判断してもらいましょう 『配列』を使うという目的での出題なら 50点ってとこかもしれません もともとの題意が 入力されるデータに対して配列で記憶しておく というだけなら 合格なのかも 平均や合計についても 配列を用いるのであれば 残念賞 といったところでしょう
- toda hiro(@hiro_knigh)
- ベストアンサー率39% (59/151)
>>こういう風にやったら出来たんですが、これじゃダメなんですか? 期待した動作に対して、期待通りの結果が出たのであれば問題ないと思うのでありますが。。。 これ以上、どんな回答を期待しているのだろう。。。 付け加えれば、floatでキャストしている所は全て要らないはず。
- redfox63
- ベストアンサー率71% (1325/1856)
国語と数学の入力された点数の合計を 国語の合計と数学の合計に分割しないと期待した結果にはなりませんよ int goukei[2]; と宣言しておいて 国語の場合には goukei[0] += kokugo[i]; 数学の場合には goukei[1] += suugaku[i]; といった具合に計算しましょう 平均や差分の計算時の変数も変更しましょうね
- koko_u_u
- ベストアンサー率18% (216/1139)
>若干間違っているっぽいんですが、これでいいんですか? 『国語の平均点は112.4点です。』 常識的に考えて、平均点が 100点を越えた時点でおかしいですよね。
- asuncion
- ベストアンサー率33% (2127/6289)
>若干間違っているっぽいんですが、これでいいんですか? 手で計算した結果と一致していればOK、不一致ならばNG。 NGの場合、ソースコードのどこが間違っているかを調べて修正。これを「デバッグ」といいます。
- koko_u_u
- ベストアンサー率18% (216/1139)
>これを基にするって事は変数とかも変えちゃいけないんですかね? 好きにすればいいです。なぜ変えちゃいけない、と思ったのかの方が不思議です。 >これでいいと思うんですがどうでしょうか? コードを書いたら次はテストだ。結果はどうでしたか?
補足
出席番号1番の国語の成績を入力してください 92 出席番号2番の国語の成績を入力してください 91 出席番号3番の国語の成績を入力してください 88 出席番号4番の国語の成績を入力してください 33 出席番号5番の国語の成績を入力してください 55 出席番号1番の数学の成績を入力してください 11 出席番号2番の数学の成績を入力してください 23 出席番号3番の数学の成績を入力してください 77 出席番号4番の数学の成績を入力してください 34 出席番号5番の数学の成績を入力してください 58 国語の平均点は112.4点です 数学の平均点は112.4点です 出席番号1番の国語の成績は92点で、平均との差は20.4です 出席番号2番の国語の成績は91点で、平均との差は21.4です 出席番号3番の国語の成績は88点で、平均との差は24.4です 出席番号4番の国語の成績は33点で、平均との差は79.4です 出席番号5番の国語の成績は55点で、平均との差は57.4です 出席番号1番の数学の成績は11点で、平均との差は101.4です 出席番号2番の数学の成績は23点で、平均との差は89.4です 出席番号3番の数学の成績は77点で、平均との差は35.4です 出席番号4番の数学の成績は34点で、平均との差は78.4です 出席番号5番の数学の成績は58点で、平均との差は54.4です こんな感じに出ましたが、若干間違っているっぽいんですが、これでいいんですか? 国語数学で平均点が一緒なんですが
- Tacosan
- ベストアンサー率23% (3656/15482)
「それがわからない」の「それ」とはなんですか? 今のソースコードにおいて, 「どこでなにをしているのか」は理解できていますか?
補足
ごめんなさい。とりあえず、1番目と2番目はやってみましたが、これを基にするって事は変数とかも変えちゃいけないんですかね?それも変えちゃダメだと完全におしまいなんですが、変数変えるの有りなら、これでいいと思うんですがどうでしょうか? それでも3番ができてないですが #include <iostream> using namespace std; int main() { int i,goukei=0; int kokugo[5]; int suugaku[5]; float k_heikin; float s_heikin; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n"; cin >> kokugo[i]; goukei = goukei + kokugo[i]; } for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の数学の成績を入力してください\n"; cin >> suugaku[i]; goukei = goukei + suugaku[i]; } k_heikin = (float)goukei/5.0; cout << "国語の平均点は" << k_heikin << "点です\n"; s_heikin = (float)goukei/5.0; cout << "数学の平均点は" << s_heikin << "点です\n"; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i]; cout << "点で、平均との差は" << k_heikin-(float)kokugo[i] << "です\n"; } for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の数学の成績は" << suugaku[i]; cout << "点で、平均との差は" << s_heikin-(float)suugaku[i] << "です\n"; } return 0; }
- koko_u_u
- ベストアンサー率18% (216/1139)
>どうすればいいんですか? まあ、最初はコードをコピペするところからですかね。 はい。補足にどうぞ。
補足
それが分からないから聞いているんですが…
補足
#include <iostream> using namespace std; int main() { int i,k_goukei=0,s_goukei=0; int kokugo[5]; int suugaku[5]; float k_heikin; float s_heikin; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n"; cin >> kokugo[i]; k_goukei = k_goukei + kokugo[i]; } for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の数学の成績を入力してください\n"; cin >> suugaku[i]; s_goukei = s_goukei + suugaku[i]; } k_heikin = (float)k_goukei/5.0; cout << "国語の平均点は" << k_heikin << "点です\n"; s_heikin = (float)s_goukei/5.0; cout << "数学の平均点は" << s_heikin << "点です\n"; for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i]; cout << "点で、平均との差は" << k_heikin-(float)kokugo[i] << "です\n"; } for(i=0;i<5;i++) { cout << "出席番号" << i+1 << "番の数学の成績は" << suugaku[i]; cout << "点で、平均との差は" << s_heikin-(float)suugaku[i] << "です\n"; } return 0; } こういう風にやったら出来たんですが、これじゃダメなんですか?