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

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

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

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

Q&A

解決済

2回答

757閲覧

c言語 構造体・ポインタ

sgefueheiffd674

総合スコア19

C

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

0グッド

0クリップ

投稿2021/11/04 12:07

実行例のように学籍番号と数学・英語・理科の点数をそれぞれ int 型のメンバとして保持する構造体 scoreを定義し、学籍番号および合計点と平均点を計算し表示する関数void print_total_average(struct score *)を作成して動作を確認するプログラムを作成したいですが、main内で可変長オブジェクトが初期化されていないというエラーが出ます。どうしたらよいでしょうか?

実行例
student[61500001] total : 217, average : 72.333336
student[61500002] total : 244, average : 81.333336
student[61500003] total : 229, average : 76.333336

#include <stdio.h> #include <math.h> struct score{ int student_num; int math; int english; int science; }; void print_total_average(struct score *sp){ int total; /* 五教科の合計 */ double avg; /* 五教科の平均 */ /* 五教科の合計の計算 */ total = sp->math + sp->english + sp->science; /* 平均の計算 */ avg = (double)total / 3.0; } int main() { int STUDENT_NUM = 3; int i; struct score list[STUDENT_NUM] = { { 61500001, 90, 72, 55 }, { 61500002, 82, 77, 85 }, { 61500003, 65, 91, 73 }, }; for (i = 0;i < STUDENT_NUM;i++) { print_total_average(&(list[i])); } return 0; }

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

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

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

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

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

guest

回答2

0

struct score list[STUDENT_NUM] = {

初期化するのであれば、配列のサイズは定数としましょう

投稿2021/11/04 12:19

y_waiwai

総合スコア87749

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

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

0

ベストアンサー

STUDENT_NUM#defineにしておきましょう。

C

1#define STUDENT_NUM 3

もしくは、struct score list[] =として、初期化子の数で配列長を決めさせるかです。

投稿2021/11/04 12:17

maisumakun

総合スコア145183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問