• 締切済み

C言語のプログラムを修正追加お願いします。

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

みんなの回答

  • furuppo
  • ベストアンサー率0% (0/0)
回答No.3

read_file関数内のreturnに、0とか1とかはいらないと思う。 intを返す関数じゃないので NO1さんの言う通り、続きはご自分で書くことをおすすめします。

回答No.2

パッと眺めた感じでは、 > 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へのリンクは意味がないどころか逆効果となるでしょう。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

ここまでできてんなら、あとは3の検索表示だけ。 とりあえず、自分で作ってみてから、質問してみたら?