課題1で作成したプログラムに学生の追加機能を実装してください。
引数にMeiboの配列を指定することができる関数addを定義し、ユーザが入力した情報を学生の一覧に追加する機能を実装してください。
呼び出し:add(students)
定義: void add(Meibo students[])
学生数は最大100名まで追加できるようにしておくこと。
という課題がありましたが、エラーが何回も出て実行できません。どうすれば実行できますか?ちなみに成功すれば画像のように実行します。
C
1// 2// 名簿プログラム 3// アルゴリズム応用 第6回課題 4// 5 6#include <stdio.h> 7 8/* 学生の構造体 */ 9 10 11typedef struct Meibo { 12 int number; 13 char name[10]; 14 int credits; 15} Meibo; 16 17/* 追加する */ 18void add(Meibo students[]){ 19 int i; 20 add(students); 21 22 printf("------------------------------------------\n"); 23 for (i = 0; i < 4; i++) { 24 printf("%s\t",students[i].name); 25 printf("%d\n",students[i].credits); 26 printf("------------------------------------------\n"); 27 } 28} 29 30int main(void) 31{ 32 33 // 4名分の学生の情報を登録 34 Meibo students[]={ 35 { 1, "John", 30 }, 36 { 2, "Paul" ,28 }, 37 { 3, "George", 20 }, 38 { 4, "Ringo", 40 } 39 }; 40 41 //メニューの表示と実行 42 char cmd; 43 printf("a:追加 d:一覧表示 q:終了\n"); 44 while((cmd = getchar()) != 'q'){ 45 switch(cmd){ 46 case 'a': 47 //追加(課題2) 48 students = input(); 49 if ( students.name[0] != '\0' ){ 50 if ( add(students)) 51 printf("\n\n登録しました\n"); 52 else 53 printf("\n\nすでに登録されています\n"); 54 } 55 else 56 printf("\n\n入力を中止しました\n"); 57 break; 58 case 'd': 59 add(students); 60 break; 61 case '\n':case ' ': 62 break; 63 default: 64 printf("不正なコマンドです。\n"); 65 break; 66 } 67 } 68 69 printf("名簿プログラムを終了します。\n"); 70 return 0; 71}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。