ここから本文です

写真のようにできるようなプログラミンクをc言語でやりたいと思ってます しかし ...

sai********さん

2017/1/2417:41:28

写真のようにできるようなプログラミンクをc言語でやりたいと思ってます
しかし エラーが多く、また自分には難しいため知恵を貸してください

プログラミング

#include <stdio.h>

#define NUMBER 4

typedef struct {
char name[20];
char num[20];
int phys,math,eng;
double avg;
}student;


void cal_avg(student *std){

(*std).avg=(*std).phys+(*std).math+(*std).eng;
(*std).avg=(*std).avg/3.0;}

void avg(student *x,student *y)
{int i;
int no=3;

avg_phys=avg_phys/no;
avg_math=avg_math/no;
avg_eng=avg_eng/no;
}




int main(void)
{int i;
student std[]={
{"135701A","Taro",51,61,71},
{"135702B","Jiro",50,60,70},{"135703C","Ken",51,61,71},{"135704D","Miki",50,60,70},
};


puts(" No. Name Phys. Math. Eng. Avg.\n----------------------------------------------");

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

cal_avg(&std[i]);

printf("%-8s %-4s %6d %6d %6d %6.1f \n ",std[i]).num,std[i].name,std[i].phys,std[i].math,std[i].eng,std[i].avg);}

puts("---------------------------------------------------");
printf("Avg. %.1f %.1f %.1f",avg_phys,avg_math.avg_eng);
return 0;
}


エラー

bash-3.2$ gcc en1313-3.c
en1313-3.c: In function ‘avg’:
en1313-3.c:21: error: ‘avg_phys’ undeclared (first use in this function)
en1313-3.c:21: error: (Each undeclared identifier is reported only once
en1313-3.c:21: error: for each function it appears in.)
en1313-3.c:22: error: ‘avg_math’ undeclared (first use in this function)
en1313-3.c:23: error: ‘avg_eng’ undeclared (first use in this function)
en1313-3.c: In function ‘main’:
en1313-3.c:43: error: request for member ‘num’ in something not a structure or union
en1313-3.c:43: error: expected ‘;’ before ‘)’ token
en1313-3.c:43: error: expected statement before ‘)’ token
en1313-3.c:46: error: ‘avg_phys’ undeclared (first use in this function)
en1313-3.c:46: error: ‘avg_math’ undeclared (first use in this function)

補足すいませんが
関数cal_avgを使ってほしいということもあるのでそれを使って自分のプログラミングを直して欲しいです

en1313-3.c,typedef struct,AVG,gcc en1313-3.c,In function,double avg,NUMBER avg

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
57
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

dia********さん

2017/1/2418:00:46

#include <stdio.h>
#define NUMBER 4

typedef struct {
char num[20];
char name[20];
int phys,math,eng;
double avg;
}student;
int main(void)
{int i;

double avg_phys=0;
double avg_math=0;
double avg_eng=0;
student std[]={
{"135701A","Taro",51,61,71},
{"135702B","Jiro",50,60,70},{"135703C","Ken",51,61,71},{"135704D","Miki",50,60,70},
};

puts(" No. Name Phys. Math. Eng. Avg.\n----------------------------------------------");

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

std[i].avg=(std[i].phys+std[i].math+std[i].eng)/3;
printf("%-8s %-4s %6d %6d %6d %6.1f \n",std[i].num,std[i].name,std[i].phys,std[i].math,std[i].eng,std[i].avg);
avg_phys+=std[i].phys;
avg_math+=std[i].math;
avg_eng+=std[i].eng;

}

puts("---------------------------------------------------");
printf("Avg. %.1f %.1f %.1f",avg_phys/NUMBER,avg_math/NUMBER,avg_eng/NUMBER);
return 0;
}

  • dia********さん

    2017/1/2516:56:50

    じゃあ

    std[i].avg=(std[i].phys+std[i].math+std[i].eng)/3;

    の部分を元のソースに戻すだけでOK。

    そのくらい判るでしょ?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる