搜索
查看: 333|回复: 1
打印 上一主题 下一主题

关于课后习题

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2018-7-16 16:44:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
课后习题: 请尝试用while循环打印下面的图形。
输入一个整数n(1=<n<=30),当输入的n值为3时,打印结果是:
1
2 2
3 3 3
当输入的n值为6时,打印结果是:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6

请教这个程序怎么编写的,算法思路也请简要说明一下。  

沙发
发表于 2018-7-19 01:03:45 | 只看该作者
本帖最后由 Smallbee 于 2018-7-19 01:09 编辑

本题关键点:
1、输出的行数与n相等;
2、每行输出的数量(列数)与所在行的序号相等;
3、每行输出的数值与所在行的序号相等。
所以,我们需要两重循环两个变量分别控制输出的行数(i,外循环)与列数(j,内循环),程序如下:
  1. #include <stdio.h>
  2. void main(){
  3.     int n, i, j;
  4.     scanf("%d", &n);
  5.     i = 1;  //i为行序号,同时控制输出的行数。
  6.     while (i <= n){
  7.         j = 1;  //j为列序号,控制每行输出几个(列数)。
  8.         while (j <= i){
  9.             printf("%d ", i);
  10.             j++;  //列序号加1,准备下一列输出。
  11.         }
  12.         printf("\n");  //结束本行输出。
  13.         i++;  //行序号加1,准备下一行输出。
  14.     }
  15. }
复制代码




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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