void main()
{
int i,j,k
for(i=1i<=3i++)
{
for(j=1j<=3-ij++)
printf(" ")
for(k=1k<=2*i-1k++)
printf("*")
printf("\n")
}
}
以上是按题目所说的只输出了3行 如果需要输出菱形 需加入反向程序
综合程序如下:
#include<stdio.h>
void main()
{
int i,j,k
for(i=1i<=3i++)
{
for(j=1j<=3-ij++)
printf(" ")
for(k=1k<=2*i-1k++)
printf("*")
printf("\n")
}
for(i=1i<=2i++)
{
for(j=1j<=ij++)
printf(" ")
for(k=1k<=5-2*ik++)
printf("*")
printf("\n")
}
}
希望对你有所帮助
这道题是要可以多次输出的,所以就用循环来控制输入输出了。至于菱形部分,可以分为增加字符输出和减少字符输出来循环输出字符和空格两部分,上一部分:字符行数就是你输入的数据n,可用for语句定义一个变量来控制输出,再看字符和空格的输出,先输出空格个数j(j=0到((n-1)-i)《包括(n-1)-i》),再输出字符个数k(k=0到2*i)《即共2*i+1个》;然后是下一部分:也用一for语句控制输出,空格个数从(0到i),字符个数从(0到n-2*i)。
执行多次就行了。
下面是输出边长为4的*号的菱形,仅供参考(你只要根据其修改一下就行了):
main()
{
int i,j,k
for(i=0i<=3i++)
{
for(j=0j<=2-ij++)
printf(" ")
for(k=0k<=2*ik++)
printf("*")
printf("\n")
}
for(i=0i<=2i++)
{
for(j=0j<=ij++)
printf(" ")
for(k=0k<=4-2*ik++)
printf("*")
printf("\n")
}
}