名前入力でデータ表示するC言語プログラム
名前を入力することで名前に紐づけられてるデータを表示するプログラム
#include <stdio.h> #include <string.h> struct PLAYER{ int num; char name[20]; char position[3]; double height; }; struct PLAYER p[6]={{10,"Messi","FW",170}, {20,"Neto","GK",180}, {30,"Tenas","GK",185}, {40,"Semedo","MF",175}, {50,"Tenas","DF",187}, {60,"Roberto","DF",182}}; int main(){ int i; char str[20]; printf("選手の名前>"); scanf(" %s",str); for(i = 0;i < 6;i++) if(strcmp(p[i].name,str) == 0) printf("%d %s %.lfcm\n",p[i].num,p[i].position,p[i].height); return 0; }
を改良し
格納されてない名前が入力されたら NO MATCH と表示し、
leaveと入力されたら実行終了となるプログラムを以下に作りましたが
実行されません。
以下のプログラムをどう直せば以下のように出力例のように出力されるかご存じの方ご教示お願い致します。
**選手の名前>Tenas **
**30 GK 185cm **
50 DF 187cm
選手の名前>abcd
No match
選手の名前>leave
#include <stdio.h> #include <string.h> struct PLAYER{ int num; char name[20]; char position[3]; double height; }; struct PLAYER p[6]={{10,"Messi","FW",170}, {20,"Neto","GK",180}, {30,"Tenas","GK",185}, {40,"Semedo","MF",175}, {50,"Tenas","DF",187}, {60,"Roberto","DF",182}}; int main(){ int i; char leave: char str[20]; printf("選手の名前>"); scanf(" %s",str); for(i = 0;i < 6;i++){ if(strcmp(p[i].name,str) == 0){ printf("%d %s %.lfcm\n",p[i].num,p[i].position,p[i].height);} if(strcmp(leave,str)==0){ break;} else{printf("No match");} } return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/24 00:25