初めまして。さっそくですが、質問させていただきます!
画像に出ているようなプログラムを作りたいんですが、*が∞に出てきて困っています。
↓書いたプログラムです。
#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を使ったほうがいいのでしょうか?
C言語 繰り返し処理について
Re:C言語 繰り返し処理について
一瞬しか見てないですが、
for(i = n; i>0; k--){
このループでkをデクリメントしてますが、iの間違いじゃないですか?
これだとiの値は変わらないので無限ループするとおもいますが 。
for(i = n; i>0; k--){
このループでkをデクリメントしてますが、iの間違いじゃないですか?
これだとiの値は変わらないので無限ループするとおもいますが 。
Re:C言語 繰り返し処理について
まず参画の奴を出すプログラム考えてからそれを個数分増やすプログラムにしたらいいんじゃないですか。
#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つできてこれを個数回繰り返せるプログラムにしたらいけますよ
#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つできてこれを個数回繰り返せるプログラムにしたらいけますよ