たなしょのメモ

日々勉強していることをつらつらと

C++に挑戦してみよう。アルゴリズム編 直角三角形 7日目

コード

#include <stdio.h>

//左下直角三角形
void triangleLB(int n);
//左上直角三角形
void triangleLU(int n);
//右上直角三角形
void triangleRU(int n);
//右下直角三角形
void triangleRB(int n);

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

do{
printf("何段の三角形ですか:");
scanf("%d", &n);
}while(n <= 0);

triangleRB(n);

return 0;
}

void triangleLB(int n)
{
for(int i = 1; i<= n; i++){
for(int j = 1; j <= i; j++){
putchar('*');
}
putchar('\n');
}
}

void triangleLU(int n)
{
int sum = n;

for(int i = 1; i <= n; i++){
for(int j = 1; j <= sum; j++){
printf("*");
}
printf("\n");
sum--;
}
}

void triangleRU(int n)
{
int sum1 = 0;
int sum2 = n;

for(int i = 1; i <= n; i++){
//空白
for(int j = 0; j < sum1; j++){
printf(" ");
}

//*
for(int k = 1; k <= sum2; k++){
printf("*");
}

printf("\n");
sum1++;
sum2--;
}
}

void triangleRB(int n)
{
int sum1 = n - 1;
int sum2 = 1;

for(int i = 1; i <= n; i++){
//空白
for(int j = 1; j <= sum1; j++){
printf(" ");
}
//*
for(int k = 1; k <= sum2; k++){
printf("*");
}

printf("\n");
sum1--;
sum2++;
}
}

所感

少し遅い夏季休暇がやってきた。

この夏季休暇中にアルゴリズムと英語と応用情報の勉強と引越しのため物件探しをしなくては。忙しい。

さて今日の問題は直角三角形を作りましょうということで、気をつける点はあくまで変数iは入力された数字までループするだけで、肝心の*や空白はiのループの中で行うようにするルールを守ればそこまで難しくないはず。あとは空白の出し方をどうするかがか重要。