C言語で3次元配列の課題をしています。
5人の学生の3科目(国数英)の点数を前期と後期の2回分について三次元配列に入力し、各学生の前期と後期の合計と前・後期の合計を求めるプログラムです。
配列に数値を格納するあたりまでは分かったものの、そこから先がよくわからなくなってしまいました。どなたか解説とともに、成績の出力の仕方を教えていただけないでしょうか。for文を使えばいいというのはわかりますが・・・。
以下に出来た部分までのソースを載せておきます。まだ未熟な上、変なミスがあるかもしれません。
#include <stdio.h>
main()
{
/*配列を宣言*/
int score[0][3][5],i,j,k;
int total,sum[2][5];
/*配列に成績を入力*/
for(i=0;i<2;i++){
for(j=0;j<3;j++){
for(k=0;k<5;k++){
printf("score[%d][%d][%d] = ",i,j,k);
scanf("%d", &score[i][j][k]);
}
}
}
/*合計を計算する*/
for(i=0;i<5;i++){
for(j=0;j<2;j++){
total=0;
for(k=0;k<3;k++){
total = total + score[i][j][k];
}
sum[i][k]=total;
}
sum[2][k]=sum[0][k]+sum[1][k];
}
/*出力する*/
/*??*/
}
※三次元配列のscoreの始めの[]は、0が前期成績、1が後期成績を格納する部分です。
No.1ベストアンサー
- 回答日時:
全部見たわけではありませんが、気が付いた点を幾つか
1.
int score[0][3][5],i,j,k;
は
int score[2][3][5],i,j,k;
では?
2.合計を計算する部分で、score配列の要素が[2][3][5]しかないのに、
for(i=0;i<5;i++){
for(j=0;j<2;j++){
total=0;
for(k=0;k<3;k++){
total = total + score[i][j][k];
となっている。
このままだと、iが4までループするため、score[4][1][2]をアクセスしてしまう。sum配列も同様に変な場所をアクセスしてしまいます。
この回答への補足
皆様、私の拙い質問を見てくださいましてありがとうございました。
自力で解決できるメドがついたので回答を締め切らせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
変数を動的に作るには?
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
動的配列が存在(要素が有る)か...
-
EXCEL VBA で、0から?1から?
-
配列の要素数を超えた参照のコ...
-
マージソートについて
-
2次元配列の、黒いマス目で囲...
-
遅延バインディングを使用でき...
-
C# Splitと配列の複合方法
-
応用情報技術者試験の令和元年...
-
VBでbyte配列型のインスタンス...
-
VB.net(2005)での配列の要素数...
-
C#の質問
-
クイックソートについての基本...
-
javaで質問です。 文字列2023/2...
-
[JAVA]try 内の変数を外で!?
-
オブジェクトの中のプロパティ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
IF関数でEmpty値を設定する方法。
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
VBで作った乱数を一度も重複さ...
-
複数のテキストボックスに同じ...
-
VBでbyte配列型のインスタンス...
-
C#の質問
-
遅延バインディングを使用でき...
-
For文と配列
-
重複なしでランダムに画像を表...
-
配列の要素数を超えた参照のコ...
-
このプログラミングの問題を教...
-
Visual C++ でコントロールを...
-
ジャグ配列とは
-
Excel VBAで配列の途中から(X)M...
おすすめ情報