学校の課題ができません><

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
リセ

学校の課題ができません><

#1

投稿記事 by リセ » 14年前

今プログラミングの課題で
ターミナルから5名分の学籍番号、英語の得点、数学の得点を読み込み、各自の合計得点を出力するプログラムを作成しなさい
というのを作成しました(下のプログラム)

これに各科目の平均点と合計得点の平均点を出力する処理を追加したプログラムを作成せよ. というのができません
# 平均点は少数第1桁まで表示すること.
# 平均点の計算および出力はvoid calc_average(void)を定義して行うこと。
というのが条件です

よろしくお願いします><

typedef struct student {
int id;
int english;
int math;
int total;
} STUDENT;

int main(void){
STUDENT a[5];


int i,k; //変数の指定


for(i = 0; i<5; i++)
{

scanf("%i %i %i", &a.id, &a.english, &a.math); //id english mathの読み込み
a.total=a.english + a.math; //totalの指定

}
k=i;
for(k = 0; k<5; k++)
{

printf("%i's total: %i\n", a[k].id, a[k].total); //それぞれtotalの表示
}


return 0;
}

non
記事: 1097
登録日時: 14年前

Re: 学校の課題ができません><

#2

投稿記事 by non » 14年前

ターミナルってなんですかね。何かのエミュレータですか?
環境などを、しっかり書いてください。%iって初めて見ましたし。
non

アバター
沖 滉均
記事: 237
登録日時: 14年前
住所: K県F市

Re: 学校の課題ができません><

#3

投稿記事 by 沖 滉均 » 14年前

ターミナルって何でしょう?
とりあえず、nonさんも言っていますが開発環境、コンパイラなどを書いてください。
#include <stdio.h>
くらいは書きましょう。警告が出ませんでしたか?

あと、もう1点
# 平均点の計算および出力はvoid calc_average(void)を定義して行うこと。
これ間違いないです?
引数も何も受け取らずに計算はできないと思うんですが
[hr]
>>nonさん
%iを使う状況はあまりないとは思いますが…一応書いときます。
%dが10進数のみの書式指定子に対して、%iは8進数・10進数・16進数での入力が可能なだけです。
わざわざ今回%iにする必要性はなさそうですが…
There is no royal road to learning.
codeタグで指定できる言語
画像

リセ

Re: 学校の課題ができません><

#4

投稿記事 by リセ » 14年前

いろいろすいません・・・

開発環境はmacOSで、

ターミナルはコマンドライン?のことです

5人分の成績を打ち込んで、それの合計・平均を表示する
ってプログラムなので・・・

># 平均点の計算および出力はvoid calc_average(void)を定義して行うこと。については
間違いないです
課題をコピペしたものなので・・・

non
記事: 1097
登録日時: 14年前

Re: 学校の課題ができません><

#5

投稿記事 by non » 14年前

>>nonさん
%iを使う状況はあまりないとは思いますが…一応書いときます。
%dが10進数のみの書式指定子に対して、%iは8進数・10進数・16進数での入力が可能なだけです。
わざわざ今回%iにする必要性はなさそうですが…[/quote]

そうなんですか。初めて知りました。

さてと、リセさんの方ですが、
Macでしたか。
それで、 aの配列はローカルで、しかも関数には引数を渡さないで解けということでしょうか?
non

リセ

Re: 学校の課題ができません><

#6

投稿記事 by リセ » 14年前

>>aの配列はローカルで、しかも関数には引数を渡さないで解けということでしょうか?

おそらくそうゆうことではないかと思います・・・

non
記事: 1097
登録日時: 14年前

Re: 学校の課題ができません><

#7

投稿記事 by non » 14年前

残念ながら思いつきませんね。

方法1
 グローバル変数を別に作り、その変数で値を渡す。
方法2
 ファイルに保存して、それを利用する。

で、たぶん問題の勘違いだってのが一番まともなんですが。
つまり、
STUDENT a[5];はグローバルで定義して良い。
また、人数は絶対5人で変わらない。

これで、手を打ちませんか?
non

アバター
沖 滉均
記事: 237
登録日時: 14年前
住所: K県F市

Re: 学校の課題ができません><

#8

投稿記事 by 沖 滉均 » 14年前

aの配列をglobalに出すか、関数で引数をとらないと課題で指定されていることはできないと思いますよ。
課題を出した先生(?)に確認してみてください。
There is no royal road to learning.
codeタグで指定できる言語
画像

リセ

Re: 学校の課題ができません><

#9

投稿記事 by リセ » 14年前

STUDENT a[5];はグローバルで定義して良い。
また、人数は絶対5人で変わらない。

でいいとおもいます



働いたプログラムの例があったので乗せておきます

1010001 90 80        ↑
1010002 30 100         
1010003 10 5        ここまで入力
1010004 100 10
1010005 65 70        ↓
1010001's total: 170        ↓ここから出力
1010002's total: 130
1010003's total: 15
1010004's total: 110
1010005's total: 135
Average of english: 59.0
Average of math: 53.0
Average of total: 112.0

non
記事: 1097
登録日時: 14年前

Re: 学校の課題ができません><

#10

投稿記事 by non » 14年前

じゃ、こんなんで。

コード:

void calc_average(void)
{
	int i,sum_english=0,sum_math=0,sum_total=0;
	for(i=0;i<5;i++){
		sum_english+=a[i].english;
		sum_math+=a[i].math;
		sum_total+=a[i].total;
	}
	printf("english Ave.=%.1f\n",sum_english/5.);
	printf("math Ave.=%.1f\n",sum_math/5.);
	printf("total Ave.=%.1f\n",sum_total/5.);

}
non

リセ

Re: 学校の課題ができません><

#11

投稿記事 by リセ » 14年前

初心者過ぎて申し訳ないのですが

void calc_average(void)
{
int i,sum_english=0,sum_math=0,sum_total=0;
for(i=0;i<5;i++){
sum_english+=a.english;
sum_math+=a.math;
sum_total+=a.total;
}
printf("english Ave.=%.1f\n",sum_english/5.);
printf("math Ave.=%.1f\n",sum_math/5.);
printf("total Ave.=%.1f\n",sum_total/5.);

}

をどの部分に入れたらよいのでしょうか?

リセ

Re: 学校の課題ができません><

#12

投稿記事 by リセ » 14年前

なんとかやってみたのですが
コンパイルすると
error: nested functions are disabled, use -fnested-functions to re-enable

というのが出てしまいました
でている場所は

  void calc_average(void)
→この行  {
  int i,sum_english=0,sum_math=0,sum_total=0;
  for(i=0;i<5;i++){
  sum_english+=a.english;
  sum_math+=a.math;
  sum_total+=a.total;

です
どうしたらよいですか?><

non
記事: 1097
登録日時: 14年前

Re: 学校の課題ができません><

#13

投稿記事 by non » 14年前

プログラムの全部をタグを使って載せてください。
恐らく、関数をmain関数の中に書いたのでは?
もう構造体のところまで習っているのだから、少しはテキストとか調べたらどうですか?
non

リセ

Re: 学校の課題ができません><

#14

投稿記事 by リセ » 14年前

なんとかできました~><

長々とありがとうございました><

閉鎖

“C言語何でも質問掲示板” へ戻る