正文

打印菱形2008-03-19 23:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zhaoyg/33455.html

分享到:

最早的版本:#include <stdio.h> int main(){ int k1 = 5 , k2 = 1; int i,j;    do  {       for (i=1 ; i <= k1-1 ; i++)   printf (" ");      for (j=1 ; j <= k2 ; j++)  printf("*");   printf("\n");      k1=k1-1;  //每行*号前的空格相差1个   k2+=2;   // 每行的*号个数相差2个  } while (k1 >1 );   //注释:下  /* 原先之所以输出    *     *****   ***    *      这样,是因为将判断条件错误的写为k1<=0,于是第一次循环执行了k1=k1-1后,K值为2不满足k1<=0    于是结束了循环  */     int k3=1, k4 =5; int i2 , j2;  do  {  for (i2=1; i2 <= k3+1 ; i2++ ) printf (" ");    for (j2=1 ; j2 <= k4 ; j2++ ) printf ("*");    printf ("\n");  k3++;  k4-=2;  } while (k3 <=3);     getchar();  return 0;} 改进后的:#include<stdio.h>int main(){    int i,j,n;        printf("请输入需要打印菱形的行数(奇数)\n");    scanf("%d",&n);         for (i=1;i<=n;i++)    {        for (j=1;j<=n/2+i;j++) //n/2+i 表示第i行要打印的内容个数,包括空格         {            if (j<=(n+1)/2-i||j<=i-(n+1)/2)  printf(" ");            if (j>(n+1)/2-i&&i<=(n+1)/2)   printf("*");            if (j>i-(n+1)/2&&i>(n+1)/2&&j<=n-(i-(n+1)/2))  printf("*");        }        printf("\n");    }    getchar();    getchar();    return 0;}输出数字菱形: #include <stdio.h> int main(){    int i,ch,n;    for (i=1;i<=5;i++)    {        n=0;                for (ch=1;ch<=i+2;ch++)        {            if (ch<=3-i||ch<=i-3)                printf(" ");                           if (ch>3-i&&ch<=3&&i<=3)                printf("%d",++n);                            if (ch>3&&ch<=5-(3-i)&&i<=3)                printf("%d",--n);                            if (i>3&&ch>i-3&&ch<=3&&ch<=5-(i-3))                printf("%d",++n);                            if (i>3&&ch>i-3&&ch>3&&ch<=5-(i-3))                printf("%d",--n);        }        printf("\n");    }    getchar();    return 0; }

阅读(2509) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册