c语言 如何输出以下图形

怎么输出以下图形?
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
oh~~no~~怎么变形了,我说的是用C语言程序来输出~~

输出菱形?我知道你说的那图形
对于这种输出图可以先分析

行数 空格(符号之前的) 字符
1--------- 3----------- 1
2--------- 2----------- 3
3--------- 1----------- 5
4--------- 0----------- 7

5--------- 1----------- 5
6--------- 2----------- 3
7--------- 3----------- 1

把图形从第四行分开分成上下两半,上半部分字符2i+1(i为行数-1),空格从3--0递减;下半部分将第5行看作第一行,字符5-2i(i为行数-1),空格等于行数1--3递加

程序:
#include<stdio.h>

int main()
{
//---------上半部分-----------
for(int i=0;i<4;i++)
{
for(int j=i;j<3;j++)//控制空格输出个数
printf(" ");//输出空格
for(int k=0;k<2i+1;k++)//控制字符输出个数
printf(" * ");//输出字符
printf("\n");
}
//--------下半部分------------
for(i=0;i<3;i++)//下半部分只有3行定义i<3
{
for(int j=0;j<i+1;j++)
printf(" ");
for(int k=0;k<5-2i;k++)
printf(" * ");
printf("\n");
}
retutn 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-15
是“*”么?如果只是“*”的话,只要先按住“shift”然后再按上面有“*”的8键就行了(shift键不要松开)
第2个回答  2008-10-15
//ok ,vc6
#include <stdio.h>

void printStar(int n)
{
int i,j;

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

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

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

}

void main()
{
int n;
printf("please input max num:\n");
scanf("%d",&n);
printStar(n);
}
第3个回答  2008-10-15
先找出这个图形的规律!2n-1 然后,就从1开始循环 ,循环次数么!输出最多星号的行数为 4 在从4减回到1结束循环!这是分析过程!应该可以看懂吧!
第4个回答  2008-10-15
main()
{
int i,j;
for(i=0;i<9;i++){
if(i<5) for(j=0;j<2*i+1;j++) putchar(42);
else for(j=0;j<15-2*i;j++) putchar(42);
putchar(10);
}
}
相似回答