----------------解决方案--------------------------------------------------------
#include<stdio.h>
int a;
void fn()
{
int i,j,k;
for(i=0;i<a;i++)
{
for(j=10;j>=i;j--)
{
printf(" ");
}
for(k=1;k<=2*i+1;k++)
{
if(k%2!=0)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i=0;i<a+2;i++)
{
for(j=9;j>=i;j--)
{
printf(" ");
}
for(k=1;k<=2*i+3;k++)
{
if(k%2!=0)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i=0;i<a+3;i++)
{
for(j=8;j>=i;j--)
{
printf(" ");
}
for(k=1;k<=2*i+5;k++)
{
if(k%2!=0)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i=0;i<a+3;i++)
{
for(j=10;j>=0;j--)
{
printf(" ");
}
for(k=1;k<2;k++)
{
printf("*");
}
printf("\n");
}
}
void person()
{
printf("*****************************打印一个松树***************************\n");
}
void sn()
{
printf("请输入数值:");
while(scanf("%d",&a))
{
if(a>4&&a<8)
fn();
else
printf("输入错误\n");
printf("请输入:");
}
}
void main()
{
person();
sn();
}
有高手能帮我合并FOR循环吗?
改成这样就可以了.
int i,j,k,t;
for(t=1;t<4;t++)
{
if(t==1)a=a-1;
for(i=0;i<a+t;i++)
{
for(j=11-t;j>=i;j--)
{
printf(" ");
}
for(k=1;k<=2*i+2*t-1;k++)
{
if(k%2!=0)
printf("*");
else
printf(" ");
}
printf("\n");
}
if(t==1)a++;
}
----------------解决方案--------------------------------------------------------
程序写的太差
基本上没必要再改
建议重写
重写时把全局变量去掉
好严厉的批评,不过很有道理
----------------解决方案--------------------------------------------------------