1726: 打印菱形
时间限制: 1 Sec 内存限制: 128 MB
#include <iostream>
using namespace std;
//规律: 上三角形的行数=用户输入的值
// 下三角形的行数=用户输入的值-1
//打印上三角形
void print_Star_up(int all_row, int current_row);
//打印下三角形
void print_Star_down(int all_row, int current_row);
int main()
{
int up_row;
//上三角形的行数=用户输入的值
while(~scanf("%d", &up_row))
{
//遍历上三角形每一行
for (int i = 1; i <= up_row; i++)
{
//打印上三角形 当前行的状态
print_Star_up(up_row, i);
}
//下三角行数=上三角形行数-1
int down_row = up_row-1;
//遍历下三角形每一行
for (int i = down_row; i >=1 ; i--)
{
//打印下三角形 当前行的状态
print_Star_down(down_row, i);
}
}
return 0;
}
//打印上三角形 当前行状态
void print_Star_up(int all_row, int current_row)
{
//打印当前行的空格状态
//规律: 用户输入的值-当前行
for (int i = 0; i < all_row - current_row; i++)
{
printf(" ");
}
//打印当前行的星星数
for (int i = 0; i < 2 * current_row - 1; i++)
{
printf("*");
}
//打印完当前行的状态 换行
printf("\n");
return;
}
//打印下三角形 当前行状态
void print_Star_down(int all_row, int current_row)
{
//打印当前行的空格状态
//规律: 用户输入的值-当前行
for (int i = all_row - current_row; i >= 0 ; i--)
{
printf(" ");
}
//打印当前行的星星数
for (int i = 2 * current_row - 1; i > 0 ; i--)
{
printf("*");
}
//打印完当前行的状态 换行
printf("\n");
return;
}