当前位置: 代码迷 >> C语言 >> 用C语言:这个图怎么编 啊,看来有点技巧,谁编 好了发上来啊
  详细解决方案

用C语言:这个图怎么编 啊,看来有点技巧,谁编 好了发上来啊

热度:161   发布时间:2005-12-23 10:21:00.0

#include<stdio.h>

void main()
{
int n=7;
int m,i,j,k1,k2,d,h;

m=(n+1)/2;k1=m-1;k2=1;d=1;
for(i=1;i<=n;i++)
{
if(i>=m) d=-1;
for(j=1;j<=k1;j++) putchar(' ');
putchar('*');
if((i!=1)&&(i!=n))
{for(h=1;h<k2-1;h++) putchar(' ');putchar('*');}
for(j=1;j<=k1;j++) putchar(' ');
printf("\n");
k1=k1-d;
k2=k2+2*d;
}
}
楼上的用d用的巧,是不是程序没运行阿。


----------------解决方案--------------------------------------------------------
以下是引用sskeyia在2005-12-22 17:34:00的发言:

这种的不太好啦,我记得有种用for(i=-3,i<=3,i++)这种作法的啊

#include<stdio.h>
main()
{
int i,j,k,g;
printf("please input a number\n");
scanf("%d",&i);
if(i<1)
{printf("number must>0\n");
exit(1);
}
for(k=1-i;k<=i-1;k++)
{
for(j=39+abs(k)-i;j>=1;j--)
printf(" ");
for(j=2*abs(k);j<2*i-1;j++)
printf("*");
printf("\n");
}
}


----------------解决方案--------------------------------------------------------
空心的嵌套一个if--------else语句。
----------------解决方案--------------------------------------------------------

没运行,那就应该还有个等号吧


----------------解决方案--------------------------------------------------------
我晕,我在我的书上有个例子跟楼主发的一模一样,但是看的一点点的懂,但是头大呀!看的头都有点痛了,理解那个鬼程序,理解的我难受!
----------------解决方案--------------------------------------------------------

#include<stdio.h>
int coust n=4;
void main()
{
inr i,j,k;


}


----------------解决方案--------------------------------------------------------

#include<stdio.h
int coust n=4;
void main()
{
int i,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
printf("\n");
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(k=1;k<=2*(n-i)-1;k++)
{
printf("*");
}
printf("\n");
}
}


----------------解决方案--------------------------------------------------------

java 版的~~总感觉我的代码多一些
public class Excise1 {

public static void main(String[] args) {
int n=7;
for(int i=1;i<=7;i++)
{
if(i<=(n+1)/2)
{for(int j=1;j<=7;j++)
{
if(j==(n+1)/2-(i-1)||j==(n+1)/2+(i-1))
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();}
else
{for(int j=1;j<=7;j++)
{

if(j==(n+1)/2+i-n||j==(n+1)/2-i+n)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();}
}


----------------解决方案--------------------------------------------------------
看了大家的程序,真是一个比一个精彩啊。我也在这儿写写自已的方法吧,还请大家指教哦!
void a(int i)
{ int b;
for(b=7;b>i;b--)
printf(" ");
for(b=1;b<=i;b++)
printf("* ");
printf("\n");
}
main()
{ int i;
for(i=1;i<=7;i+=2) a(i); /*循环前4行*/
for(i=5;i>=0;i-=2) a(i); /*循环后3行*/

}

[此贴子已经被作者于2005-12-25 19:45:06编辑过]


----------------解决方案--------------------------------------------------------

楼上的这个程序:#include<stdio.h>
void main()
{
printf(" * ");
printf(" * * ");
printf(" * * ");
printf("* *");
printf(" * * ");
printf(" * * ");
printf(" * ");
}
换行符都没有啊,怎么能打印出那个图形呢,编程还是细心的好。


----------------解决方案--------------------------------------------------------
  相关解决方案