ページ 11

はじめまして。

Posted: 2010年6月29日(火) 15:37
by 初心者
while,scanfを使って、入力した2桁の整数の中から偶数の数字だけを表示するプログラムを作りたいんですが、何回やってもうまくいきません。ヒントでいいのでよろしければ教えてください。

Re:はじめまして。

Posted: 2010年6月29日(火) 16:00
by しろ
もし偶数⇒出力

そうでなければ⇒出力しない(何もかかない)

2で割ったあまりを考えてください。

Re:はじめまして。

Posted: 2010年6月29日(火) 16:05
by 初級者
この返信はケータイからであるため、ご質問の投稿時に
ソースコードを貼り付けてあったかどうかがわからないのですが、
もし貼り付けてなかったのでしたら、その「何度やってもうまくいかない」という
コードを貼り付けてみてください。

ところで、「偶数の数字」と「偶数の数値」とは意味が異なります。
今回出力したいのは「数字」の方で間違いないですか? 画像

Re:はじめまして。

Posted: 2010年6月29日(火) 16:25
by 初心者
#include <stdio.h>

int main(void)
{
int a,b;

while (b<1);{
printf("2桁の整数を入力してください:");
scanf("%d", &a);
b=a%2;
}
printf("%d\n", b);

return 0;
}
自分なりに書いてみたんですが、ぜんぜん駄目です。しろさんが言ってるのはifを使うってことですね。
やってみます^^

Re:はじめまして。

Posted: 2010年6月29日(火) 16:43
by KEYONN_
ヒントです。
2で割った余りを求めるには、%を使います。
例:
int num=Number%2;

これで、numにNumberを2で割った余りが求まります。

で2で割った余りが0と等しければ偶数です。

あと、判定をするのは、if文か3項演算子か、switchです。
今回は、if文が適しているでしょう。

最後に二桁の数字の中からということは、
入力した[color=RED>二桁以下の数値で判定する[/color]という事でよろしいでしょうか?
ならば、例とヒントです。

一番目の????に入るのは、分かりますよね?
scanfの使い方を知っているなら分かるはずです。

二番目の????が重要です。
0と変数が等しい場合は、
0==hensuという条件です。
(このhensuという変数は適当です)

三番目の????は、二番目の????が分かれば
すぐに分かるでしょう。

四番目の????は、減算です。

#include<stdio.h>

int main()
{
int num;
printf("数値を入力してください。");
scanf("%d",????);

while(num>0)
{
if(num%2 ????)
printf("%dは偶数です。\n",????);

num????;
}

return 0;
}

Re:はじめまして。

Posted: 2010年6月29日(火) 17:24
by だいちゃん
初書き込みになります

↑↑
失敗しちゃいました(>_<)

まず1個だけ気になったのは
初めにint bを定義してますが
初期化されてないみたいですけど
いきなりwhileの条件でb使って平気ですか?

Re:はじめまして。

Posted: 2010年6月29日(火) 18:52
by シエル
入力された数字を2で割って、割り切れたら偶数。

一度書いてみて、また質問して下さい。

Re:はじめまして。

Posted: 2010年6月30日(水) 15:32
by 初心者
偶数の数字です。たとえば100と打った場合に、2,4,6・・100と表示されるプログラムです。
自宅でcpadダウンロードしてやったのですが、初期設定がよくわからなくて、
コンパイルできませんでした;いちよTKOZさんのヒントを借りて練ってみたんですが、、難しいです。

#include<stdio.h>

int main()
{
int num;
printf("数値を入力してください。");
scanf("%d",num);

while(num>0)
{
if(num%2 ==0)
printf("%dは偶数です。\n",num);

num--;
}

return 0;
}

出題者いわく2つの変数を使うらしいのですが、1つででもできるみたいなので、もう少し練ってみます。

Re:はじめまして。

Posted: 2010年6月30日(水) 15:43
by シエル
scanfの第二引数をちょっと直せば、完成なんじゃないかと。

Re:はじめまして。

Posted: 2010年6月30日(水) 16:13
by だいちゃん
scanf("%d",&num);

for(i = 2; i <= num; i+=2){
printf("%dは偶数です\n");
}

だめですか?^^;笑

Re:はじめまして。

Posted: 2010年6月30日(水) 16:44
by Dixq (管理人)
うちのサイトのトップページに「C言語を始めるには?」みたいなページがあるのでよければ参考にして下さい。

Re:はじめまして。

Posted: 2010年6月30日(水) 20:18
by パコネコ
今まできづかなかったけど、入力された数字が偶数なのかではなく、
入力された数字以下のものも描写するんですね。

Re:はじめまして。

Posted: 2010年7月06日(火) 13:21
by 初心者
おかげ様で大きい順で偶数を並べることができました^^
そうですね、入力された数字以下を出力させるプログラムです。
管理人さんが教えてくれた、Visual C++ 2010でうまい具合に出ました。
ただこれから変数を二つ使って小さい順にするんですが・・、
#include<stdio.h>

int main()
{
int num,i;

i = 2;

printf("数値を入力してください:");
scanf("%d",&num);

while(i <= num; i+=2)
{
if(num%2 ==0)
printf("%d",num);

num=num+1;
}

return 0;
}
このプログラムだとエラーがでてしまいます;
小さい順にすると厄介ですね。