#4
投稿記事
by ゆたかちゃん » 15年前
課題が出たのですがサッパリなのでお答えいただけたら幸いです。
課題
・list05.cを参考にし、以下の仕様を満たすreport1.cを作成せよ
仕様1
・以下の構造体を利用した線形リストを用いること
struct player {
int no; // 背番号
char name[40]; // 選手名
float average; // 今シーズンの通算打率
struct player *next; // 次の選手データへのポインタ
};
仕様2
・選手データを登録する以下の関数を作成すること
struct player*
add_player(struct player *data, int no, char *name, float average)
仕様3
・背番号および選手名をキーとして線形探索する以下の関数の作成すること
struct player* search_by_no(struct player *data, int no)
struct player* search_by_name(struct player *data, char *name)
仕様4
・最低10名の選手データを登録すること。選手一覧はホークスでなくてもよい。(自分の好きなチームで良い)。今シーズンの通算打率はWEBを用いて調べること。
以下list05です。
#include <stdio.h>
struct player{
int no;
char *name;
};
char *linear_search(struct player data[/url],int n,int key);
int main()
{
int n = 10;
struct player data[/url]={
{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[/url],int n,int key)
{
int i;
for(i=0;i<n;i++){
if(data.no == key){
return data.name;
}
}
return NULL;
}