前提・実現したいこと
C言語での構造体で、入力したデータ(男か女)に当てはまる時にそれを取り出し表示させたいです。
発生している問題・エラーメッセージ
性別は?> 男 1 渡辺一夫 16 男 0 0 3 篠田浩二 17 男 4 遠藤雄一 19 男 性別は?> 女 0 0 2 浅田裕子 20 女 0 0
のように、必要ないデータも0として表示されてしまいます。
該当のソースコード
C
1#include<stdio.h> 2#include<string.h> 3struct student{ 4 int no; 5 char name[20]; 6 int nenrei; 7 char seibetu[20]; 8}; 9 10int main() 11{ 12 int i, cnt = 0; 13 char str[20]; 14 struct student kekka[256]; 15 struct student data[5] = { 16 {1, "渡辺一夫", 16, "男"}, 17 {2, "浅田裕子", 20, "女"}, 18 {3, "篠田浩二", 17, "男"}, 19 {4, "遠藤雄一", 19, "男"}, 20 {5, "堀田美香", 18, "女"} 21 }; 22 printf("性別は?> "); 23 gets(str); 24 25 for(i=0; i<5; i++){ 26 if(! strcmp(str, data[i].seibetu)){ 27 kekka[i] = data[i]; 28 cnt++; 29 } 30 } 31 for(i=0; i<=cnt; i++){ 32 printf("%d ", kekka[i].no); 33 printf("%s ", kekka[i].name); 34 printf("%d ", kekka[i].nenrei); 35 printf("%s \n", kekka[i].seibetu); 36 } 37 return 0; 38}
試したこと
どうしてこうなるのかはなんとなくは分かりますが、どう対応したらいいのか分かりません。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/02 16:15