質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

3343閲覧

C言語 合計を求める二次元配列

teade

総合スコア5

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2020/07/09 11:50

キーボードから学生の体重と身長を入力し,それぞれの合計(小数点以下 1 桁)を求め
るプログラムを作りなさい.ただし,データを格納する変数は配列を用いるこ
ととして,3 行 2 列の二次元配列 gakusei[3][2]を考える(学生数は 3 名).
使う変数は,カウンタ用:i,j,体重集計用:taizyu,身長集計用:sintyo として,カ
ウンタ用は整数型を,集計用とデータ格納用の配列は実数型とする.なお,数値入力と集
計のための繰り返し処理は for 文を使うこと.
イメージ説明
という問題です。

実行結果の例として
学生 1 の体重(kg)と身長(cm)を入力(カンマ区切り):55, 167.01
学生 2 の体重(kg)と身長(cm)を入力(カンマ区切り):90, 180.5
学生 3 の体重(kg)と身長(cm)を入力(カンマ区切り):75.3, 178
学生たちの合計体重は 220.3kg,合計身長は 525.5cm です.
と出したいのですが実行すると繰り返し処理がされず一人だけで終わり合計が出てしまいます。
どのようにすればいいでしょうか。
よろしくお願いします。

include <stdio.h> int main(void) { float gakusei[3][2]={ {55.0,167.01}, {90.0,180.5}, {75.3,178.0} }; float taizyu=0.0; float sintyo=0.0; int i; int j; int sum=0; ; for(i=0;i<3;i++){ sum+=i; printf("学生%dの体重(kg)と身長(cm)を入力(カンマ区切り):",i+1); scanf("%d",&i); scanf("%d",&j); } printf("学生たちの合計体重は%.1fkg",gakusei[i][0]); printf("合計身長は%.1fcmです",gakusei[i][1]); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bboydaisuke

2020/07/09 13:28 編集

最近、変数名が gakusei, taizyu, sintyo の「平均身長や平均体重などを求める問題」についての質問が複数のユーザーから投稿されてきてますが、どこかの学校の宿題か何かなんでしょうか?
langhtorn

2020/07/09 14:20

体重と学生の入力のscanfの部分が違うと思います。
e-watt

2020/07/09 16:05

(単なる感想と妄想)変数名が訓令式なのは、先生が検索して見つけやすくするためかな?
guest

回答1

0

ベストアンサー

C++

1int i, j;

これはカウンタなんですよね?

カウンタ用:i,j,体重集計用:taizyu,身長集計用:sintyo

とわざわざ指示されているのに、なぜカウンタに身長と体重を入力しているのでしょうか。

C++

1for(i=0;i<3;i++){ 2 sum+=i; 3 4 printf("学生%dの体重(kg)と身長(cm)を入力(カンマ区切り):",i+1); 5 scanf("%d",&i); 6 scanf("%d",&j); 7}

iに体重が入力されたため、2回目にforの条件式がFalseになりそこで終わってしまっています。

もしiに体重を入力するとしても、
0. sum に i を加えるタイミングがおかしいです。
scanf() してから sum に加えるべきではないでしょうか。
0. float型で体重身長を入力したいはずなのに int の i, j で入力していますね。
せっかくfloat の taizyu, sintyo が用意されているじゃないですか。
sum も int ですね。指示通り、sum はいりません。

さらに、学生の体重と身長はキーボードから入力するのですよね?
ということは、

C++

1float gakusei[3][2]={ 2 {55.0,167.01}, 3 {90.0,180.5}, 4 {75.3,178.0} 5};

これはいらないはずですね。もし学生の体重身長が変わってしまったとき、誤った定型の答えがでてしまいます。

いろいろと校正と勉強の余地がありそうですね!頑張ってください~

投稿2020/07/10 00:57

XionCode

総合スコア46

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問