多重ループを用いて、クラス数、生徒数,生徒の点数を入力したときに、各クラスの平均点,
及びクラス全体の平均点を算出するプログラムを作成しているのですが、どこが間違えているかわかりません。どなたか間違えているところ、答えを教えて頂けないでしょうか。
これが、自分で作成したプログラムです。
#include<stdio.h>
int main(void){
int a,b,c=0,i,j,sum=0;
double ave=0;
printf("クラス数を入力してください:"); scanf("%d",&a);
printf("生徒数を入力してください:"); scanf("%d",&b);
for(i=1; i<=a; i++){
for(j=1; j<=b; j++){
printf("クラス%d:%d人目の点数を入力してください:",i,j,c); scanf("%d",&c);
sum=sum+c;
}
printf("クラス%dの平均点は%fです。\n",i,ave=sum/b);
}
printf("クラス全体の平均は%dです。",i,ave/a);
return 0;
}
No.5
- 回答日時:
#include <stdio.h>
int c_sum(int nsu)
{
int sum;
int sc;
int n;
sum = 0; // 1クラス分の得点合計の初期化
for (n = 0; n < nsu; n++)
{
printf("%d 人めの成績 :\n", n + 1);
scanf("%d", &sc);
sum += sc;
}
return (sum);
}
int main()
{
int m;
int csu;
int nsu;
int sum;
int g_nsu; // 全クラス人数合計
int g_sum; // 全クラス得点合計
double ave;
printf("クラス数:\n");
scanf("%d", &csu);
// printf("クラス %d の生徒数:\n", m);
// scanf("%d", &nsu);
g_nsu = 0;
g_sum = 0;
for (m = 1; m <= csu; m++)
{
printf("クラス %d の生徒数:\n", m);
scanf("%d", &nsu);
sum = c_sum(nsu);
g_nsu += nsu;
g_sum += sum;
printf("クラス %d の合計 : %d\n", m, sum);
printf("クラス %d の人数 : %d\n", m, nsu);
ave = (double)sum / (double)nsu;
printf("クラス %d の平均 : %lf\n\n", m, ave);
}
printf("全クラスの合計 : %d\n", g_sum);
printf("全クラスの人数 : %d\n", g_nsu);
ave = (double)g_sum / (double)g_nsu;
printf("全クラスの平均 : %lf\n", ave);
}
No.4ベストアンサー
- 回答日時:
とりあえず、追加、修正した箇所にコメントいれてあります。
#include<stdio.h>
int main(void){
int a,b,c=0,i,j,sum=0;
int allsum = 0; //追加
double ave=0;
printf("クラス数を入力してください:"); scanf("%d",&a);
printf("生徒数を入力してください:"); scanf("%d",&b);
for(i=1; i<=a; i++){
sum = 0; //追加
for(j=1; j<=b; j++){
printf("クラス%d:%d人目の点数を入力してください:",i,j,c); scanf("%d",&c);
sum=sum+c;
allsum=allsum+c; //追加
}
printf("クラス%dの平均点は%fです。\n",i,ave=sum/b);
}
printf("クラス全体の平均は%fです。\n",ave=allsum/(a*b)); //修正
return 0;
}
No.3
- 回答日時:
>答えを教えて頂けないでしょうか。
えっとプログラムは正しく動かすために「デバッグ」と言うことを行います。
プログラムはデバッグをする行為がプログラミング行為と言っても過言ではありません。
ですので、例えばですが、プログラム実行中のある時点で、自分が期待しているように処理が流れているか、その時に各変数が期待している通りの値になっているか、要所要所で情報を出力してみることです。
今後二度とC言語のプログラムを社会にでて触らないのであれば答えだけ得られればいいのかもしれませんが、基礎教科と違って情報は実践的な力を身につけなければ意味ないですよね。
No.2
- 回答日時:
「どこが間違えているかわかりません」とのことですが, そのように考えるということは
なにが間違っているのかはわからないけどなにかが間違っていると思っている
ということですよね. では, なぜ「このプログラムが間違っている」と思ったのですか?
クラス数、生徒数を2と入力したとき、クラス1の点数を2人分入力したときの平均の値はちゃんとした値が出るのですが、クラス2の点数を2人分入力したときの平均の値はクラス1と2の合計の数値を生徒数(2人分)で割った数が出たので間違っていると思いました。
No.1
- 回答日時:
for(i=1; i<=a; i++){
sum = 0; //クラスiの合計点数を0クリア
for(j=1; j<=b; j++){
}
printf("クラス%dの平均点は%fです。\n",i, sum/b);
}
>クラス全体の平均点
設問の解釈として、クラス毎に生徒数が異なるという事はないのでしょうか?
それと、通常はクラス平均値をクラス数で割って、平均値を求める事はしません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 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言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「天声人語」をインターネット...
-
配列の重複する値とその個数を...
-
1 つのヘッダファイルに複数の...
-
同じクラスにならない確率を教...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
グローバルIPとプライベートIP...
-
ATLとMFCの違いは何でしょうか?
-
eclipseのパッケージって何?
-
packageとimport の違いって?
-
ネスカフェ エクセラ と UCCク...
-
クラスのプロパティに構造体を...
-
Applet、Panelのクラス体系につ...
-
自作のクラスファイルがインポ...
-
共通で使う関数を集めたクラス...
-
クラスにアクセスできません。
-
クラス修飾子やアクセス修飾子...
-
IPアドレスのクラスAを取得して...
-
私はクラスLINEにまだ入れてな...
-
重複エラーを解決するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3年間同じクラスになる確率
-
「天声人語」をインターネット...
-
配列の重複する値とその個数を...
-
自分事ですが、私のLINEのスク...
-
java eclipse 型に解決できません
-
同じクラスにならない確率を教...
-
どこからも呼ばれていない無意...
-
グローバルIPとプライベートIP...
-
担任にプレゼント
-
数学の計算問題。 3年間同じク...
-
クラスのプロパティに構造体を...
-
河合塾のクラス分けについて
-
IPアドレスのクラスAを取得して...
-
共通で使う関数を集めたクラス...
-
自作のクラスファイルがインポ...
-
1 つのヘッダファイルに複数の...
-
ヒートテックやファイバーヒー...
-
dllと同じプロジェクトにする方法
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
おすすめ情報