struct.c
のmain関数内で宣言されている配列info4
の要素数を2つ以上増やして名前を設定し、
実行結果を確認してください。
struct.c |
---|
#include<stdio.h> /* 構造体Students型の定義の始まり */ struct Students{ char *name; double exam; int absence; }; /* 構造体Students型の定義の終わり */ int main(void){ int StudentsNumber=3, i; /* 構造体Students型を3個要素に持つ配列info4の宣言↓ */ struct Students info4[3]; /* 構造体Students型配列info4の各要素のメンバnameに代入の始まり */ info4[0].name="Meg Ryan"; info4[1].name="Julia Roberts"; info4[2].name="Gwyneth Partrow"; /* 構造体Students型配列info4の各要素のメンバnameに代入の終わり */ /* 構造体Students型配列info4の各要素のメンバexamに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Examination Points(double) for %s\n", info4[i].name); scanf("%lf", &(info4[i].exam)); } /* 構造体Students型配列info4の各要素のメンバexamに標準入力の終わり */ /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Absence Times(int) for %s\n", info4[i].name); scanf("%d", &(info4[i].absence)); } /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の終わり */ /* 構造体Students型配列info4の各要素の総合点を標準出力の始まり */ printf("Total Points are:\n"); for(i=0;i<StudentsNumber;i++){ printf("%s: %f\n", info4[i].name, info4[i].exam-10.0*(double)info4[i].absence); } /* 構造体Students型配列info4の各要素の総合点を標準出力の終わり */ return 0; } |
struct_add2obj.c |
---|
#include<stdio.h> /* 構造体Students型の定義の始まり */ struct Students{ char *name; double exam; int absence; }; /* 構造体Students型の定義の終わり */ int main(void){ int StudentsNumber=5, i; /* 構造体Students型を3個要素に持つ配列info4の宣言↓ */ struct Students info4[5]; /* 構造体Students型配列info4の各要素のメンバnameに代入の始まり */ info4[0].name="Meg Ryan"; info4[1].name="Julia Roberts"; info4[2].name="Gwyneth Partrow"; info4[3].name="Yuchi Kanzawa"; info4[4].name="Gonbe Nanashino"; /* 構造体Students型配列info4の各要素のメンバnameに代入の終わり */ /* 構造体Students型配列info4の各要素のメンバexamに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Examination Points(double) for %s\n", info4[i].name); scanf("%lf", &(info4[i].exam)); } /* 構造体Students型配列info4の各要素のメンバexamに標準入力の終わり */ /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Absence Times(int) for %s\n", info4[i].name); scanf("%d", &(info4[i].absence)); } /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の終わり */ /* 構造体Students型配列info4の各要素の総合点を標準出力の始まり */ printf("Total Points are:\n"); for(i=0;i<StudentsNumber;i++){ printf("%s: %f\n", info4[i].name, info4[i].exam-10.0*(double)info4[i].absence); } /* 構造体Students型配列info4の各要素の総合点を標準出力の終わり */ return 0; } |
struct.c
の構造体struct Students
のデータメンバを2つ以上増やして、
それらのメンバをscanf
入力するプログラムを追加して、
実行確認してください。
struct_add2member.c |
---|
#include<stdio.h> /* 構造体Students型の定義の始まり */ struct Students{ char *name; double exam; double exam2; double report; int absence; }; /* 構造体Students型の定義の終わり */ int main(void){ int StudentsNumber=3, i; /* 構造体Students型を3個要素に持つ配列info4の宣言↓ */ struct Students info4[3]; /* 構造体Students型配列info4の各要素のメンバnameに代入の始まり */ info4[0].name="Meg Ryan"; info4[1].name="Julia Roberts"; info4[2].name="Gwyneth Partrow"; /* 構造体Students型配列info4の各要素のメンバnameに代入の終わり */ /* 構造体Students型配列info4の各要素のメンバexamに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Mid-Term Examination Points(double) for %s\n", info4[i].name); scanf("%lf", &(info4[i].exam)); } /* 構造体Students型配列info4の各要素のメンバexamに標準入力の終わり */ /* 構造体Students型配列info4の各要素のメンバexam2に標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Final Examination Points(double) for %s\n", info4[i].name); scanf("%lf", &(info4[i].exam2)); } /* 構造体Students型配列info4の各要素のメンバexam2に標準入力の終わり */ /* 構造体Students型配列info4の各要素のメンバreportに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Report Points(double) for %s\n", info4[i].name); scanf("%lf", &(info4[i].report)); } /* 構造体Students型配列info4の各要素のメンバexam2に標準入力の終わり */ /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の始まり */ for(i=0;i<StudentsNumber;i++){ printf("Input the Absence Times(int) for %s\n", info4[i].name); scanf("%d", &(info4[i].absence)); } /* 構造体Students型配列info4の各要素のメンバabsenceに標準入力の終わり */ /* 構造体Students型配列info4の各要素の総合点を標準出力の始まり */ printf("Total Points are:\n"); for(i=0;i<StudentsNumber;i++){ printf("%s: %f\n", info4[i].name, 0.4*info4[i].exam+0.4*info4[i].exam2+0.2*info4[i].report-10.0*(double)info4[i].absence); } /* 構造体Students型配列info4の各要素の総合点を標準出力の終わり */ return 0; } |
scanf
入力して画面出力するプログラムを作成してください。
ただし、プログラム実行時にメーカ、型番の入力については14文字以内に抑えてください。)
struct_pencil.c |
---|
#include<stdio.h> /* 構造体Students型の定義の始まり */ struct Pencil{ char Brand[16], Type[16]; double Price; int Hardness; }; /* 構造体Students型の定義の終わり */ int main(void){ int PencilNumber=3, i; /* 構造体Students型を3個要素に持つ配列info4の宣言↓ */ struct Pencil in_myshop[3]; /* 構造体Pencil型配列in_myshopの各要素の各メンバに標準入力の始まり */ for(i=0;i<PencilNumber;i++){ /***↓本当はfgets関数を用いた方が良い***/ printf("Brand:"); scanf("%s", in_myshop[i].Brand); printf("Type:"); scanf("%s", in_myshop[i].Type); printf("Price:"); scanf("%lf", &(in_myshop[i].Price)); printf("Hardness:"); scanf("%d", &(in_myshop[i].Hardness)); } /* 構造体Pencil型配列in_myshopの各要素の各メンバに標準入力の終り */ /* 構造体Pencil型配列in_myshopの各要素の各メンバに標準出力の始まり */ for(i=0;i<PencilNumber;i++){ printf("Brand:%sType:%sPrice:%f\tHardness:%d\n", in_myshop[i].Brand, in_myshop[i].Type, in_myshop[i].Price, in_myshop[i].Hardness); } return 0; } |