Ads By Google
自然数を1つ読み込み、それが偶数なら2で割った値を。奇数なら3倍して1加えた値を画面に書き出すプログラム
if文を使うんですが、偶数か奇数かを表すのに、入力値以外にaなどとおくのですが、偶数奇数はそれぞれ2*a 2*a+1 としたんですが、int main() {
int g,a,b;
scanf("%d",&g);
a=0;
if(g=2*a )
{
b=g/2;
printf("%d\n",b);}return 0;
コレは偶数部分だけですが、ビルドはできるんですが、うまく実行できず、aの扱いがよく分かりません。それともg=2*a という定義が違っていますか?
2007-10-23 14:38の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(1)
1.
2007-10-23 14:51:41

>g=2*a
a=0と直前にあるので、
g=0
と同じになりますが、gに代入しても意味ないですね。
g==2*a
とすれば比較になりますが、0と比べてもしょうがない。gが偶数であることを判定するなら、
できなければコメント頂ければお答えします。
a=0と直前にあるので、
g=0
と同じになりますが、gに代入しても意味ないですね。
g==2*a
とすれば比較になりますが、0と比べてもしょうがない。gが偶数であることを判定するなら、
g%2==0になります。ちなみに、変数がgひとつで間に合います。
できなければコメント頂ければお答えします。
回答レベル : 回答
ありがとうございます。余りを出すだけでないことで、重要なことなので覚えておきます。
Ads By Google
コメント(1)
#2. ひよこ画伯やす
2007-10-23 17:30:31
オニ先生のおっしゃるとおりなのですが、一言アドバイスです。
>偶数奇数はそれぞれ2*a 2*a+1 と
ここの置き換えがうまくできていないようですね。
今回の場合
自然数:g
において、偶数、奇数はそう表現するかというと
自然数を2でわって、あまりが0ならば、偶数 自然数を2でわって、あまりが1ならば、奇数
などと表現ができると思います
どっちを使ってもいいのですが、前者をC言語化したのが、オニ先生がおっしゃっている
g%2==0
ということで、これがif文の判定条件になりますよね?
if(条件式1:自然数は偶数である?)
{
条件式1がYesならば、こうする
}
else
{
条件式1がNoであれば、こっちをやる
}
結果を出力
あと一息ですので、頑張ってくださいね。





