----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]corpro[/un] 在 2008-4-19 21:04 的发言:[/bo]
我看的好象不是这种形式实现的,还有其他的方法吗
我看的好象不是这种形式实现的,还有其他的方法吗
..................
----------------解决方案--------------------------------------------------------
根据刚才的改进了一点点:
#include <stdio.h>
void put_stars(int k)
{
int i;
for(i=1;i<=k;i++)
printf(" ");
printf("*");
for(i=1;i<=(5-k)*2-1;i++)
printf(" ");
if(k<5)
printf("*");
printf("\n");
}
int main()
{
int j;
for(j=5;j>=0;j--)
put_stars(j);
for(j=1;j<=5;j++)
put_stars(j);
return 0;
}
[[it] 本帖最后由 liweiruc 于 2008-4-19 21:10 编辑 [/it]]
----------------解决方案--------------------------------------------------------
看到燕子的代码, 又长进了///
构造对称区间 , 我笨~
----------------解决方案--------------------------------------------------------
我学的还不行,真的要向你们学习了
----------------解决方案--------------------------------------------------------
燕子那代码,我们一般人还真想不到的
----------------解决方案--------------------------------------------------------
用数组写也可以啊
main(){
char a[][5]={{'','','*'};{'','*','','*'};{'*','','','','*'};{'','*','','*'};{'','','*'}};
int i,j;i=0;j=0
for(;i<5;i++)
{
for(;j<5;j++)
printf("%c",a[][5]);
printf("\n");
}
}
----------------解决方案--------------------------------------------------------
这样如何。。。
程序代码:
#include <stdio.h>
int main()
{
int n,flag=1;
scanf("%d",&n);
for( int i=0;i!=2*n-1;++i)
{
for(int j=i;j!=n-1;j+=flag,putchar(' '));
putchar('*');
if(i==n-1)
flag*=-1;
if(i!=0&&i!=2*(n-1))
{
for(int k=2*n;k!=2*(n*flag+i)+2-3*flag;k+=flag,putchar(' '));
putchar('*');
}
putchar('\n');
}
return 0;
}
----------------解决方案--------------------------------------------------------
kandao 燕子的代码 我暴汗
----------------解决方案--------------------------------------------------------
我也写一个
#include<stdio.h>
int main()
{
int i,m;
for(i=1,m=1;i<8;i++,m=i-(i/4)*(i%4)*2)
printf("%*s%*s\n",4-m," "+m-1,2*m-1,"*\0* *\0* *\0* *"+m*(m-1));
return 0;
}
----------------解决方案--------------------------------------------------------