当前位置:编程学习 > C/C++ >>

用c语言输出菱行图案

用星号组成的菱行。。。请详细解释用for语句是怎么循环的,比如说:是1的时候输出什么,是2的时候又输出什么。。。。
答案:方法一:

#include<stdio.h>
int main()
{
int a,b,c;
int d,e,f;
printf("请输入最长行数(奇数):");
scanf("%d",&f);
e = (f-1)/2;
for(a=0;a<=e;a++)
{
for(b=1;b<=2*e-2*a;b++)
printf(" ");
for(c=1;c<=a*2+1;c++)
printf("* ");
printf("\n");
}
for(a=1;a<=e;a++)
{
for(c=1;c<=a*2;c++)
printf(" ");
for(b=1;b<=2*e+1-2*a;b++)
printf("* ");
printf("\n");
}
return 0 ;
}

方法二:

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,e,f;
printf("请输入最长行数(奇数):");
scanf("%d",&f);
e = (f-1)/2;
for(a=-e;a<=e;a++)
{
for(b=1;b<=abs(2*a);b++)
printf(" ");
for(c=1;c<=2*(e+1-abs(a))-1;c++)
printf("* ");
printf("\n");
}
return 0 ;
}

是1的时候,先打印0个空格,一个*号,

是3的时候

第一行:先打印1个空格,再打印1个*号

第二行:先打印0个空格,在打印3个*号

第三行:同第一行

最长行是n的时候:

第a行:先打印(n-1)/2-a个空格,再打印2a个*号(程序里的*和*之间有空格,所以打印空格的时候要乘2,打印*时不乘,但printf("* ");里*后面加一个空格)

上一个:请C语言高手进,解决问题
下一个:C语言无忧光碟序列号一般在哪

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,