数学と英語の得点を入力し、最後に表を作りたいです。
表の部分だけできませんアドバイスください。
void print_student(STUDENT s)の部分に表に関するものをいれようとすると毎回繰り返され表と表じゃない出力が一緒に入り込んでしまいます。一度生徒の点数を表示させてから、表を表示させたいです。printf("%d %s", s.id, &s.name[0]);の位置に困っているのでどこに入れると良いのか教えてください。関数を増やすべきなのですか?
#include <stdio.h> #include <string.h> typedef struct student { int id; char name[20]; double Math; double English; }STUDENT; int main(void); void print_student(STUDENT s); int main(void) { int i; STUDENT data[3] = { { 15991001, "キム" }, { 15991003, "ヒョンジュン" }, { 15991015, "イ" }, }; printf("学生の点数を入力して下さい:\n"); for (i = 0; i < 3; i++) { print_student(data[i]); } return(0); } void print_student(STUDENT s) { printf("学籍番号%d番\n", s.id); printf("数学: "); scanf("%lf", &s.Math); printf("英語: "); scanf("%lf", &s.English); }
出力例
学生番号15991044番
数学: 48
英語: 52
学生番号15991089番
数学: 48
英語: 52
(and so on)
Student# Name Math Eng Fail
15991001 キム 36.5 78.0 M
15991003 ヒョンジュン49.0 69.0 M