搜索
查看: 1563|回复: 10
打印 上一主题 下一主题

书P97关于while的作业题

[复制链接]
跳转到指定楼层
楼主
发表于 2013-10-14 19:19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用while循环打印下列图形:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5

第2题
打印出

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15



我用了嵌套,但打出来的是
1
12
123
1234
12345


代码如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int a,b;
  6.     a=1;
  7.      while(a<=5)
  8.     {
  9.                b=1;
  10.                while(b<=a)
  11.         {
  12.       printf("%d",b);
  13.       b=b+1;
  14.         }       
  15.         
  16.         printf("\n");
  17.         a=a+1;
  18.     }
  19.         system("pause");
  20.         return 0;
  21. }
复制代码
推荐
发表于 2014-1-27 15:32:32 | 只看该作者
P97第二题代码,大家参考下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         int a,b,c;
  6.     a=1;
  7.     c=0;
  8.     while(a<=5)
  9.     {
  10.         b=1;
  11.         while(b<=a)
  12.         {
  13.             printf("%d ",b+c);
  14.             b=b+1;
  15.         }
  16.         printf("\n");
  17.         c=c+a;
  18.         a=a+1;
  19.     }
  20.         
  21.         system("pause");
  22.         return 0;
  23. }
复制代码
沙发
 楼主| 发表于 2013-10-14 19:20:23 | 只看该作者
复制过来格式不工整了,请见谅
板凳
发表于 2013-10-17 00:35:30 | 只看该作者
第一道题,第二个while中, printf("%d",b); (第12行代码)应改为 printf("%d",a);
其实是每一行的数值是 行 数,而变量a 代表的就是行数。
地板
发表于 2014-1-24 20:27:42 | 只看该作者
求解b=1;在while a循环里和在一开始处为何出来结果不同?还有,第二道习题的答案方便公布一下吗,谢谢呐~{:soso_e154:}
6#
发表于 2014-1-27 15:33:50 | 只看该作者
本帖最后由 soarse 于 2014-1-27 15:42 编辑
SuperGsama 发表于 2014-1-24 20:27
求解b=1;在while a循环里和在一开始处为何出来结果不同?还有,第二道习题的答案方便公布一下吗,谢谢呐~{: ...

给出!去5楼瞧吧!
7#
发表于 2014-1-27 15:42:04 | 只看该作者
本帖最后由 soarse 于 2014-1-27 15:43 编辑

这时候可以在你所得到的结果与书中所要求的结果的差异中找到规律!
你的结果                          书中要求
1                                     1
1  2                                 2  3
1  2  3                             4  5  6
1  2  3  4                         7  8  9  10
1  2  3  4  5                     11 12 13 14 15

你会发现,你的答案第一行与要求第一行每个数字相差0,而答案第二行与要求第二行每个数字相差1,第三行相差3,第四行相差6,第五行相差10。
此时可知,你的答案每行需要依次加上(0  1  3  6  10)。

思路给出,答案参考下5楼。

如果有不需要引入新变量即可解答的方法,求告知。


8#
发表于 2014-7-15 21:01:36 | 只看该作者
跟5楼的差不多

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int a,i,t;
  a=1;
  t=1;
  while(a<=5)
  {
  i=1;
  
  while(i<=a)
  {
  printf("%d ",t);
  
  t=t+1;
  i=i+1;
  
  }
  printf("\n");
  a=a+1;
  
  }
    system("pause");
        return 0;
}
9#
发表于 2014-10-14 22:53:10 | 只看该作者
soarse 发表于 2014-1-27 15:42
这时候可以在你所得到的结果与书中所要求的结果的差异中找到规律!
你的结果                          书 ...

哥  你的代码不对吧   当a==2 时  c的值是2   while  b循环2次 b+c的值是3和4  不是要求的2和3   
8楼是正解
10#
发表于 2014-11-7 19:07:05 | 只看该作者
将12行的 b改成a 即可,观察一下就可以发现的,对了,你可以告诉我,你的代码是怎么贴上去的吗?
11#
发表于 2015-1-7 21:49:41 | 只看该作者
忆03鹜 发表于 2014-10-14 22:53
哥  你的代码不对吧   当a==2 时  c的值是2   while  b循环2次 b+c的值是3和4  不是要求的2和3   
8楼是 ...

我刚刚把我的代码复制到编译器里面试了一下,输出没有错误啊。

说我代码错了也不去编译器里面试一下嘛?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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