初歩プログラミングですが、、、

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
こう

初歩プログラミングですが、、、

#1

投稿記事 by こう » 12年前

プログラミング初心者で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

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 初歩プログラミングですが、、、

#2

投稿記事 by みけCAT » 12年前

C言語における関数の定義の方法を学ぶか、
このコードが「正しく」動作する自作言語を作るといいと思います。

前者の場合、例えば

コード:

double func(int x,int y) {
    /* 略 */
}
となると思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 初歩プログラミングですが、、、

#3

投稿記事 by softya(ソフト屋) » 12年前

codeタグに間違いが有ります。[]で囲んでくださいね。

数学の数式とプログラミング言語を混同している部分が見受けられます。

BMI=func(x,y);
func(x,y)=(double)x/(y*y);

これは数式であってプログラムではありません。
=の意味が全然違うので、まずそこを理解して下さい。
プログラムの=は代入なので、右辺の計算結果を左辺の変数に代入するって意味になります。
つまり、左辺には変数しか来てはいけませんので、func(x,y)=(double)x/(y*y);はありません。

あと数式には処理の順番と言う概念がありませんが、プログラムは上から順に処理されます。
※ 関数が来ると関数に処理順番が飛びます。
関数も数学の関数とは違うので、数学のことは一時頭の隅に追いやって下さい。

よろしいですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

こう

Re: 初歩プログラミングですが、、、

#4

投稿記事 by こう » 12年前

ありがとうございます!!!
とても参考になります!!!

書き直してみたのですがまだうまくいきません。。。
どこが悪いのでしょうか、、、

コード:

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


アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 初歩プログラミングですが、、、

#5

投稿記事 by softya(ソフト屋) » 12年前

scanfが間違っています。身長と体重を表示してみると分かりますが身長が正常に入力されないと思います。
scanfでは精度は使えないのとdoubleなので%fではなく%lfを使います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

こう

Re: 初歩プログラミングですが、、、

#6

投稿記事 by こう » 12年前

できました!!!!!!
ありがとうございます!!!!!(>-<)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 初歩プログラミングですが、、、

#7

投稿記事 by softya(ソフト屋) » 12年前

解決したコードと投稿時に解決チェックをチェックして投稿してくださいね。
これもルールに成っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る