搜索
查看: 2175|回复: 7
打印 上一主题 下一主题

求解:第200页习题,用for循环打印图形

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-28 16:02:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
图形如下,请高手同时用while和for循环两种办法解答。                  
        *
      ***
    *****
  *******
*********
  *******
    *****
      ***
        *


沙发
发表于 2013-2-28 16:57:41 | 只看该作者
本帖最后由 sycamore1990 于 2013-2-28 17:00 编辑
  1. #include <stdio.h>

  2. int main()
  3. {
  4.       int n=4;                                       
  5.       int i,j;                                         

  6.       for(i=0;i<=2*n;i++)                             
  7.       {
  8.             for(j=0;j<=2*n;j++)                     
  9.             {

  10.                 if(i<=(2*n)/2)                        

  11.                  {
  12.                     if((2*n)/2-i<=j&&j<=(2*n)/2+i)     
  13.                     {
  14.                         printf("*");
  15.                     }
  16.                      else
  17.                         printf(" ");
  18.                  }

  19.                 if(i>2*n/2)                           
  20.                
  21.                  {
  22.                    if(i-(2*n)/2<=j&&j<=(2*n)/2+(2*n-i))
  23.                    printf("*");
  24.                    else
  25.                    printf(" ");
  26.                  }
  27.             }

  28.       printf("\n");                                    


  29.       }


  30.     getch();
  31. }
复制代码
板凳
 楼主| 发表于 2013-3-4 13:27:33 | 只看该作者
sycamore1990 发表于 2013-2-28 16:57

你的这个代码运行时总是被我的杀毒软件拦截,说有风险,是怎么回事啊?我编别的代码没有这个说法啊
地板
发表于 2013-3-4 17:03:22 | 只看该作者
lingxiaopiaoluo 发表于 2013-3-4 13:27
你的这个代码运行时总是被我的杀毒软件拦截,说有风险,是怎么回事啊?我编别的代码没有这个说法啊

把你的杀软关了吧
这种程度的system call不会有什么危险
5#
发表于 2013-3-4 23:16:02 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int a,b,c,d;
        for(a=1;a<=9;a++)
   {
   for( b=1;b<=abs((9-(a*2-1))/2);b++)
                printf(" ");
   for(c=1;c<=9-(b-1)*2;c++)
        printf("*");
         printf("\n");
         }
        system("pause");
        return 0;
}
6#
发表于 2013-3-14 17:42:09 | 只看该作者
for循环:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a,b,c;
  5.     for(a=1;a<=5;a++)
  6.         {
  7.         for(b=1;b<=5-a;b++)
  8.         printf(" ");
  9.         for(c=1;c<=2*a-1;c++)
  10.         printf("*");
  11.                 printf("\n");
  12.     }
  13.     for(a=1;a<=4;a++)
  14.     {
  15.                 for(b=1;b<=a;b++)
  16.         printf(" ");
  17.         for(c=1;c<=9-2*a;c++)
  18.         printf("*");
  19.         printf("\n");
  20.     }
  21.    
  22.         sleep(5000);
  23.         return 0;
  24. }
复制代码
while循环:
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a=1,b,c,d=1,e,f;
  5.     while(a<=5)
  6.     {
  7.                 c=1;
  8.         while(c<=5-a)
  9.         {
  10.                         printf(" ");
  11.             c++;
  12.         }
  13.         b=1;
  14.         while(b<=2*a-1)
  15.         {
  16.                         printf("*");
  17.             b=b+1;
  18.         }
  19.         printf("\n");
  20.         a++;
  21.     }
  22.     while(d<=4)
  23.     {
  24.                 f=1;
  25.         while(f<=d)
  26.         {
  27.                         printf(" ");
  28.             f++;
  29.         }
  30.         e=1;
  31.         while(e<=9-2*d)
  32.         {
  33.         printf("*");
  34.             e=e+1;
  35.         }
  36.         printf("\n");
  37.         d++;
  38.     }
  39.         sleep(5000);
  40.         return 0;
  41. }
复制代码
7#
发表于 2013-4-29 14:09:30 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int a,b,c,d;
        for(a=1;a<=9;a++)
   {
   for( b=1;b<=abs((9-(a*2-1))/2);b++)
                printf(" ");
   for(c=1;c<=9-(b-1)*2;c++)
        printf("*");
         printf("\n");
         }
        system("pause");
        return 0;
}
8#
发表于 2013-7-6 15:01:03 | 只看该作者
太棒了,我也刚刚看到这里,正愁代码呢,感谢楼上所有大神,就是觉得你们怎么想出来的啊,自己怎么想都想不出来啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表