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

2024-11-26 13:54:40
推荐回答(4个)
回答1:

#include
#include
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就可以了

回答2:

#include
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的值就好,注意要是奇数;
大脑绕不过来的话, 自己拿个笔在本子上画一画就知道算法了

回答3:

#include
#include
#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 { for ( j=0;j for ( j=0;j printf("\n\n");
}
}

回答4:

这个图,百度上大把的代码,就不重复敲了