ページ 11

宿題を教えてください! while & if

Posted: 2012年6月29日(金) 08:36
by ままま
宿題は以下の通りです

1~10の数字を表示しなさい
条件
10で改行する
上記を5回繰り返す

私の作ったプログラムは以下の通りです
#include <stdio.h>

main()
{
int i;

i=1;
while(i<=10) {
printf("%d ",i);

if(i-i/10*10==0) {
printf("\n");
i=i-10;
}
i=i+1;
}
}

1~10の表示を無限に繰り返してしまいます。
5回だけ繰り返すにはどうすればいいですか?
よろしくお願いいたします。

Re: 宿題を教えてください! while & if

Posted: 2012年6月29日(金) 08:42
by non
1から10まで繰り返すためのカウンタとなる変数と、それを5回繰り返すカウンタとなる変数の2つを
用意して区別することです。

Re: 宿題を教えてください! while & if

Posted: 2012年6月29日(金) 09:02
by ままま
回答ありがとうございます。for文など、未学習のものが多く、5回繰り返す命令の作り方がよくわかりません。大変圧がましいですが、具体的に質問してもよろしいでしょうか

Re: 宿題を教えてください! while & if

Posted: 2012年6月29日(金) 09:16
by 初級者

コード:

/*
 * ていうか、「10回繰り返す」ことはできているのだから、
 * その外側で「それを5回繰り返す」処理を書けばよい。
 * 誤:圧がましい
 * 正:厚かましい(あつかましい)
 */

#include <stdio.h>

int main(void)
{
    int i, j;

    j = 1;
    while (j <= 5) {
        i = 1;
        while (i <= 10) {
            printf("%d ", i);
            if (i == 10) {
                printf("\n");
            }
            i++;
        }
        j++;
    }
    return 0;
}

Re: 宿題を教えてください! while & if

Posted: 2012年6月29日(金) 09:39
by 赤鬼
1~10の数字を表示しなさい
条件
10で改行する
上記を5回繰り返す

コード:

#include	<stdio.h>

main()
{
	int		i;
	
	i=1;
	while(i<=10)	{
		printf("%d ",i);
		
		if(i-i/10*10==0) {
			printf("\n");
			i=i-10;              ←これが原因で繰り返している
		}
		i=i+1;
	}
}
i=i-10この箇所ですね。
2重にループさせてやるか回数を数える変数をひとつ用意してあげたほうがよろしいと思います。

で、多分上記は皆さん書いていると思うのでちょっと特殊なのを。

コード:

void main(void)
{
	int i=0;
	while(i<50){
		printf("%d",i%10+1);
		if(i%10+1==10){
			putchar('\n');
		}
		i++;
	}
	getchar();
}
あまり綺麗とはいえないのでお勧めはしません。

Re: 宿題を教えてください! while & if

Posted: 2012年6月29日(金) 10:03
by ままま
なるほど!重複トピ、誤変換、申し訳ありませんでした。
皆さんの御陰で解決いたしました。ありがとうございます!