課題がわかりません。
Posted: 2011年11月22日(火) 14:05
下記のプログラムを参考に背番号と選手名から検索できるプログラムを
作りたいのですがエラーが出ます。
#include <stdio.h>
struct player{
int no;
char *name;
};
char*linear_search(struct player data[], int n, int key);
int main()
{
int n=10;
struct player data[]={
{28,"大隣憲司"},
{49,"オーティズ"},
{52,"川崎宗則"},
{9,"小久保裕紀"},
{47,"杉内俊哉"},
{50,"摂津正"},
{54,"ホールトン"},
{46,"本多雄一"},
{3,"松中信彦"},
{14,"馬原孝浩"}};
int key;
char *result;
printf("背番号を入力してください。\n");
scanf("%d",&key);
result = linear_search(data,n,key);
if (result !=NULL){
printf("背番号%d番は%s選手です。\n",key,result);
}else{
printf("背番号%d番の選手はいません。\n",key);
}
return 0;
}
char*linear_search(struct player data[],int n,int key)
{
int i;
for(i=0;i<n;i++){
if (data.no==key){
return data.name;
}
}
return NULL;
}
作成したプログラムは下記にあるのでどなたか訂正をお願いします。
#include <stdio.h>
#include <string.h>
struct player{
int no;
char name[40];
float average;
};
char*linear_search(struct player data[],int no,int name,float average);
struct player* search_by_name(struct player *data, char *name);
struct player* search_by_no(struct player *data, int no);
int main()
{
int n;
float f;
struct player data[]={
{52,"川崎宗則",0.267},
{46,"本多雄一",0.305},
{5,"松田宣浩",0.282},
{24,"内川聖一",0.338},
{30,"長谷川勇也",0.293},
{9,"小久保裕紀",0.269},
{6,"多村仁志",0.241},
{42,"カブレラ",0.225},
{3,"松中信彦",0.308},
{27,"細川亨",0.201}};
int key;
char *name;
float result;
printf("背番号を入力してください。\n");
scanf("%d",&key);
result = linear_search_by_no(data,n,f);
if(result!=NULL){
printf("背番号%d番は%s選手で打率は%fです。\n",n,key,result);
}else{
printf("背番号%d番の選手はいません。\n",key);
}
printf("名前を入力してください。\n");
scanf("%d",&key);
result = linear_search_by_name(data,key,f);
if(result!=NULL){
printf("%s選手の背番号は%d番で打率は%fです。\n",n,key,result);
}else{
printf("%s選手はいません。\n",key);
}
return 0;
}
char*linear_search(struct player data[],int n,int key,float f)
{
int i;
for(i=0;i<n;i++){
if (data.no == n){
return data.name;
}
}
return NULL;
}
作りたいのですがエラーが出ます。
#include <stdio.h>
struct player{
int no;
char *name;
};
char*linear_search(struct player data[], int n, int key);
int main()
{
int n=10;
struct player data[]={
{28,"大隣憲司"},
{49,"オーティズ"},
{52,"川崎宗則"},
{9,"小久保裕紀"},
{47,"杉内俊哉"},
{50,"摂津正"},
{54,"ホールトン"},
{46,"本多雄一"},
{3,"松中信彦"},
{14,"馬原孝浩"}};
int key;
char *result;
printf("背番号を入力してください。\n");
scanf("%d",&key);
result = linear_search(data,n,key);
if (result !=NULL){
printf("背番号%d番は%s選手です。\n",key,result);
}else{
printf("背番号%d番の選手はいません。\n",key);
}
return 0;
}
char*linear_search(struct player data[],int n,int key)
{
int i;
for(i=0;i<n;i++){
if (data.no==key){
return data.name;
}
}
return NULL;
}
作成したプログラムは下記にあるのでどなたか訂正をお願いします。
#include <stdio.h>
#include <string.h>
struct player{
int no;
char name[40];
float average;
};
char*linear_search(struct player data[],int no,int name,float average);
struct player* search_by_name(struct player *data, char *name);
struct player* search_by_no(struct player *data, int no);
int main()
{
int n;
float f;
struct player data[]={
{52,"川崎宗則",0.267},
{46,"本多雄一",0.305},
{5,"松田宣浩",0.282},
{24,"内川聖一",0.338},
{30,"長谷川勇也",0.293},
{9,"小久保裕紀",0.269},
{6,"多村仁志",0.241},
{42,"カブレラ",0.225},
{3,"松中信彦",0.308},
{27,"細川亨",0.201}};
int key;
char *name;
float result;
printf("背番号を入力してください。\n");
scanf("%d",&key);
result = linear_search_by_no(data,n,f);
if(result!=NULL){
printf("背番号%d番は%s選手で打率は%fです。\n",n,key,result);
}else{
printf("背番号%d番の選手はいません。\n",key);
}
printf("名前を入力してください。\n");
scanf("%d",&key);
result = linear_search_by_name(data,key,f);
if(result!=NULL){
printf("%s選手の背番号は%d番で打率は%fです。\n",n,key,result);
}else{
printf("%s選手はいません。\n",key);
}
return 0;
}
char*linear_search(struct player data[],int n,int key,float f)
{
int i;
for(i=0;i<n;i++){
if (data.no == n){
return data.name;
}
}
return NULL;
}