はじめまして。

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

はじめまして。

#1

投稿記事 by 初心者 » 15年前

while,scanfを使って、入力した2桁の整数の中から偶数の数字だけを表示するプログラムを作りたいんですが、何回やってもうまくいきません。ヒントでいいのでよろしければ教えてください。

しろ

Re:はじめまして。

#2

投稿記事 by しろ » 15年前

もし偶数⇒出力

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

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

初級者

Re:はじめまして。

#3

投稿記事 by 初級者 » 15年前

この返信はケータイからであるため、ご質問の投稿時に
ソースコードを貼り付けてあったかどうかがわからないのですが、
もし貼り付けてなかったのでしたら、その「何度やってもうまくいかない」という
コードを貼り付けてみてください。

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

初心者

Re:はじめまして。

#4

投稿記事 by 初心者 » 15年前

#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を使うってことですね。
やってみます^^

KEYONN_

Re:はじめまして。

#5

投稿記事 by KEYONN_ » 15年前

ヒントです。
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:はじめまして。

#6

投稿記事 by だいちゃん » 15年前

初書き込みになります

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

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

シエル

Re:はじめまして。

#7

投稿記事 by シエル » 15年前

入力された数字を2で割って、割り切れたら偶数。

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

初心者

Re:はじめまして。

#8

投稿記事 by 初心者 » 15年前

偶数の数字です。たとえば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:はじめまして。

#9

投稿記事 by シエル » 15年前

scanfの第二引数をちょっと直せば、完成なんじゃないかと。

だいちゃん

Re:はじめまして。

#10

投稿記事 by だいちゃん » 15年前

scanf("%d",&num);

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

だめですか?^^;笑

Dixq (管理人)

Re:はじめまして。

#11

投稿記事 by Dixq (管理人) » 15年前

うちのサイトのトップページに「C言語を始めるには?」みたいなページがあるのでよければ参考にして下さい。

パコネコ

Re:はじめまして。

#12

投稿記事 by パコネコ » 15年前

今まできづかなかったけど、入力された数字が偶数なのかではなく、
入力された数字以下のものも描写するんですね。

初心者

Re:はじめまして。

#13

投稿記事 by 初心者 » 15年前

おかげ様で大きい順で偶数を並べることができました^^
そうですね、入力された数字以下を出力させるプログラムです。
管理人さんが教えてくれた、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;
}
このプログラムだとエラーがでてしまいます;
小さい順にすると厄介ですね。

閉鎖

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