11/26;構造体
12/ 3;休講
12/10;ポインタ
12/17;数値計算と誤差,並び替えのアルゴリズムの比較
1/ 7;復習(課題)
1/??;期末試験(筆記試験)
構造体は,とても便利なデータ構造.
struct [構造体タグ]宣言のリスト[変数]
宣言,定義,代入,参照.
#include <stdio.h> #include <string.h> /* global変数 */ /* 構造体の宣言;学生一人一人が持つべき性質を示した設計図 */ struct student { int id; /* 出席番号 */ char name[20]; /* 氏名 */ int kokugo; /* 国語の点 */ int suugaku; /* 数学の点 */ int eigo; /* 英語の点 */ }; int main(void); void print_student(struct student s); int main(void) { struct student taro; /* 学生の実体「太郎」を定義(生成) */ struct student jiro; /* 学生の別の実体「次郎」を定義(生成) */ /* 「太郎」のデータを代入 */ taro.id = 10; /* 構造体の名前.メンバ名 */ strcpy(&taro.name[0], "Yamada"); /* Cは文字列の扱いがややこしい */ taro.kokugo = 100; taro.suugaku = 85; taro.eigo = 60; /* 「次郎」のデータを代入 */ jiro = taro; jiro.id = 11; strcpy(&jiro.name[0], "次郎"); /* Cは文字列の扱いがややこしい */ jiro.kokugo = 99; print_student(taro); print_student(jiro); return 0; } void print_student(struct student s) { printf("出席番号:%d\n", s.id); printf("氏名:%s\n", &s.name[0]); printf("国語:%d\n", s.kokugo); printf("数学:%d\n", s.suugaku); printf("英語:%d\n", s.eigo); printf("合計:%d\n", s.kokugo+s.suugaku+s.eigo); printf("\n"); return; }