#include <stdio.h>
#include <malloc.h>
#include <string.h>
struct student{
int number;//学生番号
char name[10];//苗字
struct student *next;
};
int main(){
int in_number;
char in_name[10];
struct student *pointer_root;
pointer_root = (struct student *)malloc( sizeof(struct student) );
printf("今からデータを自動的に登録して、リスト構造を作成します。\n");
struct student *pointer_student;
pointer_student = pointer_root;
printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 1);
pointer_student->number = 175;
strcpy(pointer_student->name, "tanaka");
printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 2);
pointer_student->next = (struct student *)malloc( sizeof(struct student) );
pointer_student = pointer_student->next;
pointer_student->number = 176;
strcpy(pointer_student->name, "yamada");
printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 3);
pointer_student->next = (struct student *)malloc( sizeof(struct student) );
pointer_student = pointer_student->next;
pointer_student->number = 177;
strcpy(pointer_student->name, "nakamura");
printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 4);
pointer_student->next = (struct student *)malloc( sizeof(struct student) );
pointer_student = pointer_student->next;
pointer_student->number = 178;
strcpy(pointer_student->name, "aoki");
printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 5);
pointer_student->next = (struct student *)malloc( sizeof(struct student) );
pointer_student = pointer_student->next;
pointer_student->number = 179;
strcpy(pointer_student->name, "katoh");
pointer_student->next = NULL;
printf("\n");
printf("名簿に登録された学生のリストを表示します。\n");
pointer_student = pointer_root;
while(1){
printf( "%d %s \n", pointer_student->number , pointer_student->name );
pointer_student = pointer_student->next;
if( pointer_student == NULL ){ break; }
}
printf("\n");
printf("リスト構造の最初に 新しい学生を追加します。\n");
printf("追加する学生番号と氏名を入力してください。");
scanf("%d %s", &in_number , in_name);
pointer_student = pointer_root;
while(1){
if(pointer_student->next == NULL ){break;}
pointer_student = pointer_student->next;
}
pointer_student->next = (struct student *)malloc( sizeof(struct student) );
pointer_student = pointer_student->next;
pointer_student->number = in_number;
strcpy(pointer_student->name, in_name);
pointer_student->next = NULL;
printf("\n");
printf("学生が追加登録されたので、名簿に登録された学生のリストを表示します。\n");
pointer_student = pointer_root;
while(1){
printf( "%d %s \n", pointer_student->number , pointer_student->name );
pointer_student = pointer_student->next;
if( pointer_student == NULL ){ break; }
}
return 0;
}