[C语言大神进]用循环结构编写程序,输出以下图案:

如题所述

#include<stdio.h>
#include<iostream>
using namespace std;
void main(void)
{
    int i,j,n;// n是*最多的那一行的行数

    printf("Enter n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n-i;j++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
        printf("\n");

    }   
    for(i=n-1;i>=1;i--)

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

    }
    system("pause");
}
输入4就可以了

温馨提示:答案为网友推荐,仅供参考
第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");
}
}本回答被网友采纳
第3个回答  2014-04-16
这个图,百度上大把的代码,就不重复敲了追问

我是菜鸟 ,求复制

追答

吃饭先,晚上给你吧