CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

编程题 使用双层for循环打印下面的图形

楼主w1425()2006-06-19 14:12:56 在 C/C++ / 新手乐园 提问

编程题   使用双层for循环打印下面的图形      
  *     *     *     *  
    *     *     *     *  
      *     *     *     *   答案如下   但恕本人愚昧   ,实在看不懂(看了一整天)请各位加一下说明。。  
  main(   )    
  {   inti,j;  
      for(i=0,j<=2;i++)  
      {   for(i=0;j<=i;j++)printf("空格符号")  
          for(j=o;j<=3;j++)printf("*")  
        }  
        printf("\n")  
  }  
      i和j各指什么?该图形有没有使用坐标轴?如果使用了,请高手画一下。。 问题点数:70、回复次数:30Top

1 楼w1425()回复于 2006-06-19 14:14:43 得分 0

注:该循环使用了for循环的嵌套Top

2 楼yuyuan830705()回复于 2006-06-19 14:22:14 得分 0

楼主提供程序是不对的。不信你运行一下。Top

3 楼zez(思恩 闭关练功ing...)回复于 2006-06-19 14:24:10 得分 0

晕...  
   
  谁喜欢分给他解释一下...  
   
  请楼主先了解了解c语言最基本的知识再问问题比较好....  
   
  *   *   *   *  
  *   *   *   *  
  *   *   *   *  
  这玩意根本不是图形,只是个   *   和   空格   和回车   组成的字符串..ok?Top

4 楼tailzhou(尾巴)回复于 2006-06-19 14:25:43 得分 0

i是行,j是列  
   
  main(   )    
  {   inti,j;  
      for(i=0,j<=2;i++)    
      {   for(i=0;j<=i;j++)printf("   ")   //打印每行前面的空格数  
          for(j=o;j<=3;j++)printf("*")   //打印3个'*'  
        }  
        printf("\n")       //换到下一行  
  }Top

5 楼laiwusheng(风清扬)回复于 2006-06-19 14:27:09 得分 0

转新手乐园Top

6 楼tailzhou(尾巴)回复于 2006-06-19 14:27:57 得分 0

楼主提供程序是不对的。不信你运行一下。  
   
  lz的程序估计是手敲的,所以漏了很多空格符,好象有个0还写成了oTop

7 楼mysear(hello buddy)回复于 2006-06-19 14:36:51 得分 0

太太太晕了!  
  就是看不懂Top

8 楼mysear(hello buddy)回复于 2006-06-19 14:40:39 得分 0

void   main()    
  {    
  int   i,j;  
  for(i=0;i<=2;i++)//控制打印的行数  
  {  
  for(j=0;j<=i;j++)//根据行数,控制打印的空格数  
  printf("   ");  
  for(j=0;j<=3;j++)//控制每行打印4个*  
  printf("*");  
  printf("\n");  
  }  
  }  
  这样好看些Top

9 楼yuyuan830705()回复于 2006-06-19 14:41:08 得分 0

而且即使修正了,还是死循环。一定是楼主太粗心了~~~Top

10 楼w1425()回复于 2006-06-19 14:58:56 得分 0

不会错吧  
      tailzhou(尾巴)   :(我是把书上抄过来的  
  main(   )    
  {   inti,j;  
      for(i=0,j<=2;i++)    
      {   for(i=0;j<=i;j++)printf("   ")   //打印每行前面的空格数  
          for(j=o;j<=3;j++)printf("*")   //打印3个'*'  
        }  
        printf("\n")       //换到下一行  
  }  
  这是不是对的?Top

11 楼yuyuan830705()回复于 2006-06-19 15:08:09 得分 0

连分号都没有~~~~而且真的是     for(i=0,j<=2;i++)   不是     for(i=0,i<=2;i++)   ??Top

12 楼fadom(小车快跑)回复于 2006-06-19 15:41:02 得分 0

#include   <string.h>  
  #include   <stdio.h>  
  void   main(   )    
  {    
  int   i,j;  
  for(i=0;i<3;i++)  
    {  
      for(j=0;j<i;j++)printf("   ");  
      for(j=0;j<4;j++)printf("*");  
      printf("\n");  
    }  
  }  
  搂主的程序应该是这样i控制行数,j控制空格的列数;for(j=0;j<4;j++)printf("*");这里的j主要是用来输出4个*号,只是为了简便所以用了j,要是想更容易看些的话就改为  
  for(int   k=0;j<4;j++)printf("*");也可以。  
  希望搂主能看懂,答完拿分。Top

13 楼fadom(小车快跑)回复于 2006-06-19 15:51:32 得分 0

#include   <stdio.h>  
  void   main(   )    
  {    
  int   i,j;  
  for(i=0;i=<2;i++)  
    {  
      for(j=0;j<i;j++)printf("   ");  
      for(j=0;j=<3;j++)printf("*");  
      printf("\n");  
    }  
  }  
  应该是这样的,  
  这句printf("\n");应该放在i控制的for循环里面,这样才能达到换行的目的,  
  搂主的原程序中有的i和j抄错了,英文o和数字0有点不小心,还有就是逗号和分号也有些错误。  
  建议楼主在学习过程中能够多试着自己运行调式程序,这样就可以很快发现问题和错误了,也更容易理解程序,有助于更快的进步,呵呵。Top

14 楼w1425()回复于 2006-06-19 15:59:41 得分 0

fadom(小车快跑)谢谢你  
  我组要的疑惑是第2个for循环for(j=0;j<i;j++)printf("   ");是怎么控制空格的打印的??????Top

15 楼tailzhou(尾巴)回复于 2006-06-19 16:15:58 得分 0

第一行的时候:  
  i=0,相当于for(j=0;j<0;j++)printf("   ");   不打印空格;  
  第二行的时候:  
  i=1,相当于for(j=0;j<1;j++)printf("   ");   打印1个空格;  
  第三行的时候:  
  i=2,相当于for(j=0;j<2;j++)printf("   ");   打印2个空格;  
   
   
  不会错吧  
      tailzhou(尾巴)   :(我是把书上抄过来的  
  main(   )    
  {   inti,j;  
      for(i=0,j<=2;i++)    
      {   for(i=0;j<=i;j++)printf("   ")   //打印每行前面的空格数  
          for(j=o;j<=3;j++)printf("*")   //打印3个'*'  
        }  
        printf("\n")       //换到下一行  
  }  
  这是不是对的?  
  明显for(j=o;j<=3;j++)printf("*")   里面的j=o是字母o而不是0,并且大多数的语句都没用";"结尾Top

16 楼w1425()回复于 2006-06-19 16:22:29 得分 0

谢谢tailzhou(尾巴)    
  但是*和*之间的两个空格怎么打印呢????  
  Top

17 楼w1425()回复于 2006-06-19 16:24:52 得分 0

*和*之间也有两个空格  
  怎么打印???Top

18 楼w1425()回复于 2006-06-19 16:28:05 得分 0

谢谢tailzhou(尾巴)    
  但是*和*之间的两个空格怎么打印呢????Top

19 楼mysear(hello buddy)回复于 2006-06-19 16:28:44 得分 0

*和*之间的空格这样打印printf("*++");把+换成键盘上最大的键位(空格),需要几个就敲几下Top

20 楼tailzhou(尾巴)回复于 2006-06-19 16:33:41 得分 0

如果*和*之间也有两个空格  
  那么printf("*")   改成printf("*     ");    
   
  完整点的:  
  main(   )    
  {   inti,j;         ==>   int   i,j;     //int与i之间缺空格  
      for(i=0,j<=2;i++)   ==>for(i=0;j<=2;i++)   //i=0后应该是分号  
      {   for(i=0;j<=i;j++)printf("空格符号")   ==for(i=0;j<=i;j++)printf("   ");   //语句缺结束符‘;’  
          for(j=o;j<=3;j++)printf("*")   ==>for(j=0;j<=3;j++)   printf("*     ");   //o应该是0,语句缺结束符‘;’  
   
        }  
        printf("\n")   ==>printf("\n");   //语句缺结束符‘;’  
   
  }  
  Top

21 楼tailzhou(尾巴)回复于 2006-06-19 16:36:07 得分 0

前一段那个帖子是你发的么?  
  那里面的回复基本都是正确的。Top

22 楼wd1566(冰原的风)回复于 2006-06-20 16:17:06 得分 0

up!~Top

23 楼xiezengguang(增广贤文)回复于 2006-06-20 16:54:12 得分 0

太幼稚的问题Top

24 楼systemx(-操!老子从不讲脏话的!阿弥陀佛!-)回复于 2006-06-20 18:06:24 得分 0

 
    mysear()   (   )   信誉:99     2006-6-19   14:40:40     得分:   0      
     
     
         
  void   main()    
  {    
  int   i,j;  
  for(i=0;i<=2;i++)//控制打印的行数  
  {  
  for(j=0;j<=i;j++)//根据行数,控制打印的空格数  
  printf("   ");  
  for(j=0;j<=3;j++)//控制每行打印4个*  
  printf("*");  
  printf("\n");  
  }  
  }  
   
  这样好看些  
   
  ——————————————————————  
   
  做了下缩进处理      
     
  Top

25 楼lixich()回复于 2006-06-20 23:04:52 得分 0

做过缩进处理的程序,看起来就是舒服!  
  毕竟都是人在看程序!Top

26 楼guochangchun21(郭长春)回复于 2006-06-20 23:47:14 得分 0

自己敲一下代码就完事了   就知道对不对了Top

27 楼w1425()回复于 2006-06-21 13:27:37 得分 0

*和*之间也有两个空格   那么根据tailzhou(尾巴)   的说法for(j=0;j<=3;j++)//控制每行打印4个*  
  printf("*");应该是for(j=0;j<=3;j++)printf("*     ");和书上的不一样的  
  (就不对的了)怎么解释呢?  
   
  Top

28 楼w1425()回复于 2006-06-21 13:42:10 得分 0

也许是这样的  
  main(   )    
  {   int   i,j;  
      for(i=0;i<=2;i++)/*控制行的输出*/  
      {   for(j=0;j<=i;j++)printf("   ");/*控制空格的个数*/  
          for(j=0;j<=3;j++)printf("*");/*控制没行4个*/  
        printf("\n");/*输出完一行换行*/  
      }  
  }  
  就“for(j=0;j<=3;j++)printf("*");/*控制没行4个*/”这一行有点问题     按这样输出那*和*之间也就没有两个空格的了。??图形就是  
  ****  
    ****  
      ****很明显与原图形不一致了     是不是本人太笨就是不明白*和*之间的两个空格是怎么控制打印出来的  
  帮帮我!!!!  
  Top

29 楼mysear(hello buddy)回复于 2006-06-21 17:53:14 得分 0

晕死了  
   
  程序如下:  
  void   main(   )    
  {    
  int   i,j;  
  for(i=0;i<=2;i++)/*控制行的输出*/  
  {  
  for(j=0;j<i;j++)/*控制空格的个数*/  
  printf("   ");  
  for(j=0;j<=3;j++)/*控制没行4个*/  
  printf("*     ");  
  printf("\n");/*输出完一行换行*/  
  }  
  }  
   
  输出结果如下:  
  *     *     *     *  
    *     *     *     *  
      *     *     *     *  
   
  这次是不是一模一样了!!!Top

30 楼cxjddd(又是花开时)回复于 2006-06-21 18:19:41 得分 0

//   空格被转换成中文字符了。。。  
  void   print_graph   (int   m,   int   n)  
  {  
   int   i;  
   for   (i   =   0;   i   <   m;   ++i)  
   {  
    const   char*   sp   =   "";  
    int   j;  
    for   (j   =   0;   j   <   n;   ++j,   sp   =   "   ")  
     printf   ("%s*",   sp);  
    printf   ("\n");  
   }  
  }Top

相关问题

关键词

得分解答快速导航

  • 帖主:w1425

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo