//author:yangyang
#include "stdafx.h"
#define NUM 111 //输入多少行,由该数值控制图形的行数输出
#define NUM_DIV (NUM-1)/2
int main()
{
char a[NUM][NUM] = {};//存放*
for (int i = 0; i < NUM; i++)
{
if (i <= NUM_DIV) //如果在上三角,赋值
{
int num1 = NUM_DIV - i, num2 = NUM_DIV + i;
for (int k = num1; k <= num2; k++)
{
a[i][k] = '*';
}
}
else//如果在下三角,赋值
{
int num1 = i- NUM_DIV, num2 = NUM-1+NUM_DIV -i;
for (int k = num1; k <= num2; k++)
{
a[i][k] = '*';
}
}
}
for (int i = 0; i < NUM; i++)//画图
{
for (int j = 0; j < NUM; j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
for (int i = 0; i < NUM; i++)//输出第几行星星个数,空格个数
{
if(i<=NUM_DIV)
printf("第%d行的*个数%d,空格的个数%d\n", i + 1, 2 * i + 1, (NUM - 1 - 2 * i)/2);
//printf("第%d行的*个数%d,空格的个数%d\n",i+1,2*i+1,NUM-1-2*i);
else
//printf("第%d行的*个数%d,空格的个数%d\n", i + 1, NUM-2*(i-NUM_DIV), 2*(i-NUM_DIV));
printf("第%d行的*个数%d,空格的个数%d\n", i + 1, NUM - 2 * (i - NUM_DIV), (i - NUM_DIV));
}
/***********************第二个图*************************/
char b[NUM][NUM] = {};
for (int i = 0; i < NUM; i++)//赋值
{
if (i <= NUM_DIV) {
int num1 = NUM_DIV - i, num2 = NUM_DIV + i;
b[i][num1] = '*';
b[i][num2] = '*';
}
else
{
int num1 = i - NUM_DIV, num2 = NUM-1+NUM_DIV - i;
b[i][num1] = '*';
b[i][num2] = '*';
}
}
for (int i = 0; i < NUM; i++)//画图
{
for (int j = 0; j < NUM; j++)
{
printf("%c", b[i][j]);
}
printf("\n");
}
for (int i = 0; i < NUM; i++)//输出第几行星星个数,空格个数
{
if (i <= NUM_DIV)
{
if(i == 0)
printf("第1行的*个数1,空格的个数%d\n",NUM_DIV);
else
printf("第%d行的*个数2,空格的个数%d\n", i + 1, 2 * i + 1+(NUM - 1 - 2 * i) / 2-2);
}
else {
if(i==NUM-1)
printf("第%d行的*个数1,空格的个数%d\n",NUM, (i - NUM_DIV));
else
printf("第%d行的*个数2,空格的个数%d\n", i + 1, NUM - 2 * (i - NUM_DIV)+(i - NUM_DIV)-2);
}
}
return 0;
}
打印菱形星号组合
最新推荐文章于 2021-09-21 17:09:09 发布