プロが教えるわが家の防犯対策術!

C言語のプログラムがあと少しで完成しそうなのですがつまっています。誰か、修正、追加して完成させて頂けないでしょうか
このサイトでコンパイルなど出来ます
http://ideone.com/

以下の問題を解きました
また問題文の指示には必ずしたがってください。また、この文章の条件でなく、人数が4人とかそれ以外の時でも出来るようなプログラムでお願いします。実行結果のとおりになるようお願いします

http://i.imgur.com/nuzJv2v.png
http://i.imgur.com/c7f3Vh2.png
http://i.imgur.com/5aCqDO0.png
http://i.imgur.com/9u8hHIM.png
問題は画像になっています、実行結果も含まれています


#include<stdio.h>
#include<string.h>

/*構造体型struct Dataの宣言*/
struct Data{
char name[20];
int height;
double weight;
} data[100];

int cnt;

/*read_file関数の宣言*/
void read_file(void)
{
FILE *fp;
char filename[20];
cnt=0;
printf("読み込むファイルの名前を入力してください。\n");
scanf("%s",filename);
fp=fopen(filename,"r");
if(fp==NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}
while(fscanf(fp,"%c %d %lf",data[cnt].name,data[cnt].height,data[cnt].weight)!=EOF){
cnt++;
}
fclose(fp);
printf("ファイルを読み込みました。\n");
return 0;

}
/*p_all関数の宣言*/
void p_all(void)
{
int i;
printf("名前     身長(cm)   体重(kg)\n");
for(i=0;i<cnt;i++)
{
printf("%-2s %5d %.2f\n",data[i].name,data[i].height,data[i].weight);
}
}

int main(void)
{
int a;
while(1)
{
printf("**************身長・体重の表示***************\n\n");
printf(" データファイルの読み込み・・・・・(1)\n");
printf(" 全てのデータを表示・・・・・・・・(2)\n");
printf(" 特定のデータを表示・・・・・・・・(3)\n");
printf(" 終わり・・・・・・・・・・・・・・(4)\n\n");
printf("処理番号を入力してください\n");
scanf("%d",&a);
}
if (a==1){  
read_file();
}

  if (a==2){
  p_all();
}
if (a==3){}
if(a==4){
break;
}

return a;
}

A 回答 (3件)

read_file関数内のreturnに、0とか1とかはいらないと思う。


intを返す関数じゃないので


NO1さんの言う通り、続きはご自分で書くことをおすすめします。
    • good
    • 0

パッと眺めた感じでは、


> while(fscanf(fp,"%c %d %lf",data[cnt].name,data[cnt].height,data[cnt].weight)!=EOF)
これは多分、
while(fscanf(fp,"%s %d %lf",data[cnt].name,&data[cnt].height,&data[cnt].weight)!=EOF)
としないと上手く動きませんよ。

また、
> return a;
この部分ですが、恐らくaには4が入ってることでしょうから、これでは「終了方法が適切でなかった」というメッセージをOSに送ってしまいます。
return 0;
としましょう。

追伸
1点目:ほとんど同じ内容の質問をここ1週間くらいで3度も見ているのですが、これは
http://guide.okwave.jp/guide/prohibition.html
にあるように、「マルチポスト」に該当する迷惑行為・禁止行為となる恐れがあります。
すぐに回答が得られないからと言って、他の質問者の質問が表示されるスペースを削ってまで質問するのは問題があります。

2点目:
あなたはどのような方に回答して欲しいのでしょうか。
C言語におけるコンパイル方法・実行方法がわからない方を対象にして質問しているのであれば適切なのですが、恐らくそうではないでしょう。
ideone.comへのリンクは意味がないどころか逆効果となるでしょう。
    • good
    • 0

ここまでできてんなら、あとは3の検索表示だけ。


とりあえず、自分で作ってみてから、質問してみたら?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!