ページ 1 / 1
初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 19:04
by こう
プログラミング初心者でBMIを求めBMI>=25 だと肥満に注意と表示させるプログラムにするには
どうすればよいでしょうか。
教えてもらえるとありがたいです。
code
#include<stdio.h>
func(int,int)
{
int x;
int y;
BMI=func(x,y);
func(x,y)=(double)x/(y*y);
return BMI;
}
int main()
{
int a,b;
double c;
printf("体重を入力してください---");
scanf("%d",&a);
printf("\n身長を入力してください---");
scanf("%d",&b);
c=BMI;
BMI=func(a,b);
printf("あなたのBMIは%lfです\n",c);
if(c>=25){
printf("肥満に注意!");
}
return 0;
}
/code
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 19:14
by みけCAT
C言語における関数の定義の方法を学ぶか、
このコードが「正しく」動作する自作言語を作るといいと思います。
前者の場合、例えば
コード:
double func(int x,int y) {
/* 略 */
}
となると思います。
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 19:19
by softya(ソフト屋)
codeタグに間違いが有ります。[]で囲んでくださいね。
数学の数式とプログラミング言語を混同している部分が見受けられます。
BMI=func(x,y);
func(x,y)=(double)x/(y*y);
これは数式であってプログラムではありません。
=の意味が全然違うので、まずそこを理解して下さい。
プログラムの=は代入なので、右辺の計算結果を左辺の変数に代入するって意味になります。
つまり、左辺には変数しか来てはいけませんので、func(x,y)=(double)x/(y*y);はありません。
あと数式には処理の順番と言う概念がありませんが、プログラムは上から順に処理されます。
※ 関数が来ると関数に処理順番が飛びます。
関数も数学の関数とは違うので、数学のことは一時頭の隅に追いやって下さい。
よろしいですか?
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 19:44
by こう
ありがとうございます!!!
とても参考になります!!!
書き直してみたのですがまだうまくいきません。。。
どこが悪いのでしょうか、、、
コード:
#include<stdio.h>
double func(int x,double y)
{
double c;
c=(double)x/(y*y);
return c;
}
int main()
{
int a;
double b,c;
printf("体重を入力してください---");
scanf("%d",&a);
printf("\n身長を入力してください---");
scanf("%3.1f",&b);
c=func(a,b);
printf("あなたのBMIは%4.1fです\n",c);
if(c>=25){
printf("肥満に注意!");
}
return 0;
}
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 20:45
by softya(ソフト屋)
scanfが間違っています。身長と体重を表示してみると分かりますが身長が正常に入力されないと思います。
scanfでは精度は使えないのとdoubleなので%fではなく%lfを使います。
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 20:59
by こう
できました!!!!!!
ありがとうございます!!!!!(>-<)
Re: 初歩プログラミングですが、、、
Posted: 2013年10月26日(土) 21:02
by softya(ソフト屋)
解決したコードと投稿時に解決チェックをチェックして投稿してくださいね。
これもルールに成っています。