[ create a new paste ] login | about

Link: http://codepad.org/o0fqHYTZ    [ raw code | output | fork ]

C, pasted on Nov 28:
#include <stdio.h>
#include <malloc.h>
#include <string.h>

struct DoublyLinkedList_Student{
  int number;//学籍番号
  char name[10];//苗字
  struct DoublyLinkedList_Student  *pointerPrevious;
  struct DoublyLinkedList_Student  *pointerNext;
};

int main(){
  int  in_number;// キーボードから入力される学籍番号を格納する変数。

  struct DoublyLinkedList_Student  *pointer_root;

  pointer_root = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );

  printf("今からデータを自動的に登録して、リスト構造を作成します。\n");

  struct DoublyLinkedList_Student  *pointer_student;
  struct DoublyLinkedList_Student  *pointer_previous_student;


  pointer_student = pointer_root;

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 1);
  pointer_student->number = 175;
  strcpy(pointer_student->name, "tanaka");

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 2);
  pointer_student->pointerNext = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );
  pointer_previous_student = pointer_student;
  pointer_student = pointer_student->pointerNext;
  pointer_student->pointerPrevious = pointer_previous_student;
  pointer_student->number = 176;
  strcpy(pointer_student->name, "yamada");

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 3);
  pointer_student->pointerNext = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );
  pointer_previous_student = pointer_student;
  pointer_student = pointer_student->pointerNext;
  pointer_student->pointerPrevious = pointer_previous_student;
  pointer_student->number = 177;
  strcpy(pointer_student->name, "nakamura");

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 4);
  pointer_student->pointerNext = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );
  pointer_previous_student = pointer_student;
  pointer_student = pointer_student->pointerNext;
  pointer_student->pointerPrevious = pointer_previous_student;
  pointer_student->number = 178;
  strcpy(pointer_student->name, "aoki");

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 5);
  pointer_student->pointerNext = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );
  pointer_previous_student = pointer_student;
  pointer_student = pointer_student->pointerNext;
  pointer_student->pointerPrevious = pointer_previous_student;
  pointer_student->number = 179;
  strcpy(pointer_student->name, "katoh");

  printf(" %d 番目の学生の学籍番号と氏名を登録します。\n", 6);
  pointer_student->pointerNext = (struct DoublyLinkedList_Student *)malloc( sizeof(struct DoublyLinkedList_Student) );
  pointer_previous_student = pointer_student;
  pointer_student = pointer_student->pointerNext;
  pointer_student->pointerPrevious = pointer_previous_student;
  pointer_student->number = 180;
  strcpy(pointer_student->name, "suzuki");

  pointer_student->pointerNext = 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->pointerNext;
	if( pointer_student == NULL ){ break; }
  }

  printf("\n");
  printf("学籍番号を入力してください。その番号の学生の苗字を表示します。");
  scanf( "%d", &in_number );

  pointer_student = pointer_root;

  if( pointer_student->number == in_number ){
	  printf("学籍番号 %d の学生の苗字は %s です。\n", pointer_student->number, pointer_student->name );
  }
  else{
    while(1){
      pointer_student = pointer_student->pointerNext;
	  if( pointer_student->number == in_number ){
	    printf("学籍番号 %d の学生の苗字は %s です。\n", pointer_student->number, pointer_student->name );
		break;
	  }
    }
  }
  return 0;
}


Output:
1
Segmentation fault


Create a new paste based on this one


Comments: