第1个回答 2019-02-16
#include<iostream>
using namespace std;
int main()
{
int Y = 7; //行数
int iSpace = 0; // 空格数
int iPrint = 0; //列数(打印*数量)
for (size_t y = 0; y < Y; y++)
{
iSpace =(Y / 2) - y;
iSpace = abs(iSpace); //abs取绝对值
for (size_t i = iSpace; i > 0; i--)
{
cout << " ";
}
iPrint = (Y / 2 - iSpace) * 2 + 1;
for (size_t x = iPrint; x > 0; x--)
{
cout << "*";
}
cout << endl;
}
cin.get();
return 0;
}
只要修改Y的值就好,注意要是奇数;
大脑绕不过来的话, 自己拿个笔在本子上画一画就知道算法了
第2个回答 2014-04-16
#include<stdio.h>
#include<stdlib.h>
#define N 7 //行数
#define KG abs(N/2-i) //每行空格数
#define XH (N/2-abs(N/2-i))*2+1 //每行星号数
void main()
{ int i,j;
for ( i=0;i<N;i++ )
{ for ( j=0;j<KG;j++ ) printf(" "); //两个空格
for ( j=0;j<XH;j++ ) printf("* "); //星号空格
printf("\n\n");
}
}本回答被网友采纳