ページ 11

C言語 繰り返し処理について

Posted: 2010年10月20日(水) 19:30
by リッド
初めまして。さっそくですが、質問させていただきます!

画像に出ているようなプログラムを作りたいんですが、*が∞に出てきて困っています。

↓書いたプログラムです。

#include<stdio.h>

int main(void)
{
int i,j,k,n,s;

printf("直角三角をn個描きます。\n段数と個数を入力してください。\n");
printf("段数:"); scanf("%d,\n", &s);
printf("個数:"); scanf("%d,\n", &n);

for(k = s; k>0; k--){
for(i = n; i>0; k--){
for(j = (s -k + 1); j>0; j--){
printf("*");
}
for(j = k; j>0; j--){
printf(" ");
}
}
printf("\n");
}

return (0);
}

どこがいけないか、指摘お願いします!putcharを使ったほうがいいのでしょうか?

Re:C言語 繰り返し処理について

Posted: 2010年10月20日(水) 20:01
by シエル
一瞬しか見てないですが、
for(i = n; i>0; k--){

このループでkをデクリメントしてますが、iの間違いじゃないですか?
これだとiの値は変わらないので無限ループするとおもいますが 。

Re:C言語 繰り返し処理について

Posted: 2010年10月20日(水) 20:36
by ひろ
まず参画の奴を出すプログラム考えてからそれを個数分増やすプログラムにしたらいいんじゃないですか。
#include <stdio.h>

int main(void){

int i,j;

for(i = 1; i <= 6; i++){ /*ここの6は段数の数です。*/
for(j = 1; j <= i; j++){

printf("*");
}

printf("\n");
}

return 0;
}

これを実行したら段数6の三角形が1つできてこれを個数回繰り返せるプログラムにしたらいけますよ

Re:C言語 繰り返し処理について

Posted: 2010年10月21日(木) 20:06
by リッド
シエルさんありがとうございます!