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件)
- 最新から表示
- 回答順に表示
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へのリンクは意味がないどころか逆効果となるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
C言語のプログラムで、途中で止...
-
空白を含んだ文字列がうまく格...
-
C言語についてです。
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
なぜ無限ループになるかが分か...
-
reallocでエラー
-
NetBIOS名のエラー
-
エラーについて質問です。
-
ビルドエラーの対処がわからな...
-
バイナリファイル(画像)のよみ...
-
[C言語 Windows] Visual Cでの...
-
「an=(n-1)/(n+1)のときlim[n→∞...
-
マイナスからプラスへ転じた時...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
DWORDの実際の型は何でしょうか
-
fgetsなどのときのstdinのバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
空白を含んだ文字列がうまく格...
-
char型2つを結合し、short型に...
-
【C言語】全角文字の配列を、全...
-
プログラミングの授業の課題です
-
C言語のプログラムで、途中で止...
-
C++で指定文字列のカウント方法...
-
C言語で複数列のデータを1列の...
-
C言語でのCSVファイルの読み出...
-
構造体メンバの初期化
-
なぜ無限ループになるかが分か...
-
reallocでエラー
-
Ç言語でファイルサイズを変更す...
-
ファイル操作で全角空白を消す
-
矢印キーを押下してコンソール...
-
セグメンテーションエラーの原...
-
static付き宣言の初期化
-
ファイルから数字列を16進数の...
おすすめ情報