用c语言输出菱行图案
用星号组成的菱行。。。请详细解释用for语句是怎么循环的,比如说:是1的时候输出什么,是2的时候又输出什么。。。。
用星号组成的菱行。。。请详细解释用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语言无忧光碟序列号一般在哪