小さい順に

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

小さい順に

#1

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

#include<stdio.h>

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

while(num>0)
{
if(num%2 ==0)
printf("\n%d",num);

num=num-1;
}

return 0;
}
前回、これに例えば、100を入力すると大きい順に100,98,・・・2,というプログラムができたのですが、今回は小さい順に表示するプログラムを作りたいです。変数を二つ使うんですが、自分の作ったプログラムだとエラーが出ます。

初心者

Re:小さい順に

#2

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

#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;
}
いろんなヒントをもとに作ってるんですが、全部エラーが出たり、永遠に数が増えてったりします。
直すべきところを教えてください。

胡椒

Re:小さい順に

#3

投稿記事 by 胡椒 » 15年前

まず
while(i <= num; i+=2)
という使い方は出来ないと思います。この場合は
while(i <= num){
i+=2;
}
じゃないですか?

また、
num=num+1;
も、どのような意図があるのでしょう?

へろりくしょん

Re:小さい順に

#4

投稿記事 by へろりくしょん » 15年前

とりあえず、コードを意識しながら全部日本語で書いてみるといいのではないかと。


main()
{
num に適当な数字を入力;

ループ(num が0になるまで減らしながら繰り返す){
もし(num が偶数なら) 表示
}
}

後はコードを埋めていくだけです。
#include <stdio.h>    

int main(void)
{
    int num;

    scanf("%d", &num);

    for(num = num - num % 2; num >= 0; num -= 2) printf("%d, ", num);

    return 0;
}

motuna

Re:小さい順に

#5

投稿記事 by motuna » 15年前

はじめまして。

このプログラムは2,4,6…numまでのプログラムでいいですよね?

直すべきところはまず

while(i <= num; i+=2) ←ココ


forを使ったほうが楽でしょう

whileの場合書き方が間違っているようです。この書き方ですとエラーがでます。
エラーを出さないためには;を,に変えればいいです。

また上記の操作をすると無限ループとなります。
これはループを抜ける条件がi+2のほうになっているためだと思います。
もう一度コンマ演算子について調べてみることをおすすめします。

あとは大きい順だと2で終わりですが小さい順だとnumで終わりととなります。
終わる位置を

num=num+1;

で変えてしまっています。
と、するとprintfで表示してるnumも変える必要がありますよね?

以上のことをすればあと少し直せば出来るとこまで行けるはずです。
頑張ってください

MAY

Re:小さい順に

#6

投稿記事 by MAY » 15年前

#include <stdio.h>

int main(void) //←関係ありませんがvoidを入れておきましょう
{
int num,i;

i = 2;

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

while(i <= num )
{
if(num%2 ==0)
printf("%d\n",i); //numではなくiを表示しないと意味がないでしょう

i = i + 2; //iを増やしていかないと意味がないでしょう
}

return 0;
}

初心者

Re:小さい順に

#7

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

おぉ!!できました^^
一つずつ上から条件をクリアしていかないと、ちゃんとしたプログラムは書けないんですね。
何回もヒントを読んでうちにどういったものを当てはめればいいか、わかってきました。
胡椒さん、へろりさん、motunaさん、MAYさん ありがとうございます^^

閉鎖

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