ページ 11

課題がわかりません。

Posted: 2011年11月22日(火) 14:05
by hanako
下記のプログラムを参考に背番号と選手名から検索できるプログラムを
作りたいのですがエラーが出ます。

#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;
}

Re: 課題がわかりません。

Posted: 2011年11月22日(火) 14:47
by non
char*linear_search(struct player data[],int no,int name,float average);

このプロトタイプにて、int name や float average は何を関数に渡したいのでしょうか?

[追記]
よく見たら、まったくの未完成なのですね。エラーが出るなんて書いてあるから、ある程度は
作ってあるのかと思ってました。
まずは、どんな関数を作るのか、整理して、何を渡したら何を返すのか決めましょう。

Re: 課題がわかりません。

Posted: 2011年11月22日(火) 14:50
by beatle
コードを載せる際はcodeタグで囲ってください。
詳しくはフォーラムルールをご覧ください。

僕の投稿を参考にして問題点などを詳しく書くと、良い回答がもらいやすいと思います。

Re: 課題がわかりません。

Posted: 2011年11月22日(火) 14:57
by naohiro19
この掲示板では丸投げ禁止になっていますのでフォーラムルールをご覧ください。