![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
★????
>こうゆうことですか??
↑
全然、アドバイスした所が修正されていないけど。なぜ?
・次の点をもう一度見直して修正して下さい。
(1)fscanf() の書式制御文字(%s %d %d とか3つにします)
(2)fscanf() の引数(ここには構造体メンバを3つ渡します)
(3)if() 文の条件で calc_bmi ではなく戻り値の a で比較すべきです。
(4)else if () 文の条件式が全然直っていませんが…。→if(20<calc_bmi=<25) はエラーです。
(5)main() 関数に void data() の関数は定義できません。Java 言語ではないですから。
main() 関数の外で void data() を定義して下さい。
(6)printf() 関数では『やせすぎ』、『普通』、『肥満』の3つを表示するのに
なぜ?氏名、身長、体重を出力しているの?
質問の内容と違いますが、どちらが正しいのですか?
・順番に修正してから全ソースなどを補足などに貼り付けて下さい。
http://www9.plala.or.jp/sgwr-t/c/sec15-2.html
↑
ここのページをよく読みましょう。
そうすれば(1)、(2)はできます。
・以上。もう少し落ち着いて頑張って下さいな。
参考URL:http://www9.plala.or.jp/sgwr-t/c/sec15-2.html
この回答への補足
#include <stdio.h>
struct calc_bmi{
int sintyo,taijyu;
char name[80];
};
int main(void)
{
double a;
FILE *fp;
if ( (fp = fopen("bmi.dat","r")) != NULL ){
while ( fscanf(fp,"%s %d %d",&name,&sintyo,&taijyu) == 3 ){
a = bmi(&calc_bmi);
if(20>=a){
printf("%s %d %d やせすぎ",name,sintyo,taijyu);
}else if(20<a)&&(a=<25){
printf("%s %d %d 普通",name,sintyo,taijyu);
}else{
printf("%s %d %d 肥満",name,sintyo,taijyu);
}
}
fclose( fp );
}
return 0;
}
void data (struct calc_bmi data[],int count)
{
}
これであっているでしょうか?
(2)の構造体のメンバの渡し方がわかりません。
ページもちゃんとみたのですが…
No.6
- 回答日時:
>やってみたのですが、ものすごい数のエラーがでました。
>でいいのでしょうか??
↑
エラーが出ているので良くないです。
実際ソースを見ても構造体が使われていなかったり、if 文の条件式が正しくないです。
・まず構造体はどこに定義しているのか補足して欲しいです。
あと fscanf() の書式制御文字は引数に応じて複数指定できるので『%s,%d,%d』などと
3つにします。今回は name、sintyo、taijyu がそれぞれ文字列型、整数型、整数型なので
『%s』、『%d』、『%d』となるのです。間にカンマを入れていますが氏名、身長、体重の
データがカンマ文字で区切られていると想定してのアドバイスです。もし、空白文字で
区切られている場合は『%s %d %d』とします。
http://www9.plala.or.jp/sgwr-t/c/sec05.html を参考に。
その他:
・fscanf() で読み込んだ値(name、sintyo、taijyu)を構造体にセットしてから bmi() 関数に
渡して下さい。計算結果を calc_bmi に代入するところはあっています。
>calc_bmi=taijyu/sintyo/sintyo;
↑
この指定では構造体メンバにセットできませんよ。
・if 文の条件式
>}else if(20<calc_bmi=<25){
↑
は『20以上25未満』を想定しているようですが、このような記述はできません。
よって2つに条件式を分けます。
(1)20以上
(2)25未満
この2つの条件を AND(&&) で結合します。
・つまり、
『else if ( (1)の式 && (2)の式 )』
という感じになります。
参考文献:
・http://homepage3.nifty.com/mmgames/c_guide/index …→『苦しんで覚えるC言語』
にある
・http://homepage3.nifty.com/mmgames/c_guide/16-01 …→『異なる型の変数をまとめる』
・http://homepage3.nifty.com/mmgames/c_guide/16-02 …→『構造体の引数』
・http://homepage3.nifty.com/mmgames/c_guide/16-03 …→『構造体の配列』
・http://homepage3.nifty.com/mmgames/c_guide/16-q. …→『練習問題16』
を参照して下さい。ここにほぼ答えらしき内容が載っています。
・以上。
参考URL:http://www9.plala.or.jp/sgwr-t/c/sec15-2.html
この回答への補足
何度もすみません。
include <stdio.h>
struct calc_bmi{
int sintyo,taijyu;
char name[80];
};
int main(void)
{
double a;
FILE *fp;
if ( (fp = fopen("bmi.dat","r")) != NULL ){
while ( fscanf(fp,"%d",&name,&sintyo,&taijyu) == 3 ){
a = bmi(&calc_bmi);
if(20>=calc_bmi){
printf("%s %d %d",name,sintyo,taijyu);
}else if(20<calc_bmi=<25){
printf("%s %d %d",name,sintyo,taijyu);
}else{
printf("%s %d %d",name,sintyo,taijyu);
}
}
fclose( fp );
}
return 0;
void data (struct calc_bmi data[],int count)
{
}
}
こうゆうことですか??
No.5
- 回答日時:
> 書式は%dでいいのでしょうか?氏名は%sじゃなくてもいいのですか?
まずはやってみる。質問はそれから。
この回答への補足
やってみたのですが、ものすごい数のエラーがでました。
ファイル名はbmi.datです。
include <stdio.h>
int main(void)
{
double a;
int sintyo,taijyu,name;
FILE *fp;
if ( (fp = fopen("bmi.dat","r")) != NULL ){
while ( fscanf(fp,"%d",&name,&sintyo,&taijyu) == 3 ){
calc_bmi=taijyu/sintyo/sintyo;
a = bmi(&calc_bmi);
if(20>=calc_bmi){
printf("%s %d %d",name,sintyo,taijyu);
}else if(20<calc_bmi=<25){
printf("%s %d %d",name,sintyo,taijyu);
}else{
printf("%s %d %d",name,sintyo,taijyu);
}
}
fclose( fp );
}
return 0;
}
でいいのでしょうか??
No.4
- 回答日時:
★回答者 No.2 です。
一部訂正。場所⇒while ( fscanf("書式制御文字",&氏名メンバ,&身長メンバ,&体重メンバ) == 3 ){
修正⇒while ( fscanf(fp,"書式制御文字",&氏名メンバ,&身長メンバ,&体重メンバ) == 3 ){
※fscanf() に『fp』を忘れてしまいました。第一引数に必要でした。
・以上。
No.3
- 回答日時:
> ファイルの開け方、閉め方、fscanfなどの単語の意味はわかっていますが
ならば
struct Record {
char name[64]; /* 名前 */
double height; /* 身長 */
double weight; /* 体重 */
};
struct Record table[27];
1. ファイルを開け、
2. その内容を読み込んで table[0]~table[26] に格納し、
3. ファイルを閉じてください。
4. 確認のため、読み込まれたtable[]を全部プリントしてみてください。
5. 次に問題の関数bmi:
double bmi(struct Record* rec)
を実装します。
そこまでできたら[4]に[5]の結果を追加します。
これ以上は訊くなかれ。
"構成の方法"を示しましたから
「わからない」とは言わせません。
教科書/先生/友人を総動員して解決してください。
No.2
- 回答日時:
★アドバイス
>ファイルの開け方、閉め方、fscanfなどの単語の意味はわかっていますが、
>どういう風に書いていけばいいのかわかりません。
>構成の方法がわかりません。
↑
全体的に次のようにすれば良いでしょう。
// 肥満度の計算プログラム
int main( void )
{
double ret;
FILE *fp;
if ( (fp = fopen("ファイル名","r")) != NULL ){ ←ファイルの開け方
// 氏名,身長,体重の入力(構造体の各メンバに入力)
while ( fscanf("書式制御文字",&氏名メンバ,&身長メンバ,&体重メンバ) == 3 ){
// ここで BMI の計算(肥満度)
ret = bmi( &構造体名 ); ←ここで構造体を渡す(体重÷身長÷身長)
// ここで条件分岐(表示)
/*
肥満度は20未満が「やせすぎ」
20以上25未満は「普通」
25以上は「肥満」としています。
*/
↑
if()、else if()、else を使いましょう。
}
fclose( fp ); ←ファイルの閉め方
}
return 0;
}
以上。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- ダイエット・食事制限 24歳女性です。 血液検査の結果の紙を初めて貰ったので、自分がどのくらい肥満か知りたいです。 腎臓を 5 2022/11/27 15:22
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- 体重計・体脂肪計・体組成計 標準体重 0 2022/05/28 21:07
- 婦人科の病気・生理 ダイエットで生理不順になった場合体重を戻さなければ行けないそうですが元肥満体型の人はその体重にさせら 7 2023/02/16 23:17
- 糖尿病・高血圧・成人病 病的肥満について(経験談求む) 3 2022/08/02 05:36
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- ダイエット・食事制限 お腹をへこませたい 7 2023/01/26 12:40
- 学校 アラフィフ男です。昭和の時代の信じられない経験を教えてください。 私が小学5年の時少し肥満体質でした 2 2023/02/08 21:45
- ダイエット・食事制限 旦那が肥満みたいなのですが、どうしたらいいでしょうか? 2年前から所謂、幸せ太りで旦那が80キロ後半 9 2022/08/31 18:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python、プログラミングについ...
-
swift言語の最適化 swift最適化...
-
win10で、正確な待ち時間の作り方
-
【C言語】全角文字の配列を、全...
-
大量のデータを読み込んで表示...
-
C# DatagridviewにExcelシート...
-
C言語をコンパイルするとコンピ...
-
[C言語]fputsとfprintfの違い
-
C言語 列挙型(enum型)変数について
-
c言語
-
バッチファイルで以下のような...
-
Stuck
-
ArduinoでMouse関数を使用して...
-
Linuxでの開発環境構築や設定の...
-
トリプトファンってケト原性あ...
-
c言語
-
c言語でイベントフラグを使った...
-
C言語初心者 ポインタについて...
-
C言語初心者 構造体 課題について
-
visual studio 2019を使ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルの入出力
-
どっちが可愛いと思いますか?
-
身長 165センチ 体重 43キロ 頭...
-
身長165センチの女性に質問です...
-
ブラジャーのサイズ F80ってデ...
-
2ヶ月弱で13号から9号になりた...
-
太ってる事がコンプレックス。...
-
綺麗に痩せるって医学的にあり...
-
本気で痩せたい!どうしたら良...
-
ダイエットについて質問です^ ^...
-
身長161cm、体重51kg、体脂肪27...
-
体重が減っても体脂肪率が変わ...
-
一年くらいで18キロくらい痩せ...
-
必ず痩せるダイエット方法
-
体脂肪率20%、身長162cm、体重5...
-
二度目のダイエットは痩せない?
-
身長154センチ体重51キロ女です...
-
身長158cm、体重51.8kg、体脂肪...
-
ぽっちゃりって160センチで...
-
セロクエルからエビリファイへ
おすすめ情報