黑马程序员技术交流社区

标题: 跪求解释下!!! [打印本页]

作者: 沐浴阳光@    时间: 2015-4-6 22:05
标题: 跪求解释下!!!
#include <stdio.h>

int main()
{
    // 定义一个变量存储用户输入的值
    int n = 0;// 一定要初始化
    //判断n值合不合理
    while (n<=0)
    {
        printf("请输入一个正整数:\n");
        //接收输入的数据
        scanf("%d",&n);
    }
    // 输出图形
    for (int i = 0;i<n;i++)//有多少行
    {
        for (int j = 0;j<n-i;j++)//每一行有多少个
        {
            printf("*");
            
        }
        printf("\n");
    }
   
    return 0;
}

一直想不通   j<n-i     是什么意思,求给位大神指点一下!
作者: 流转少年    时间: 2015-4-6 22:14
你要输出的图形是下面这种类型的图形:
*****
****
***
**
*
如果要输出这种图形,第零行(图形中的第一行,代码中的第0行)输出的*的个数是输入的整数,第一行输出的个数是比第零行少一个,第二行输出的比第一行少一个,也就是比第零行少两个。这样的话,如果换成行数来算,就是每一行输出*的个数,是用户输入的数值减去行数。(在这里,你定义i=0为初始行,那么我说的第一行,在代码中其实是第0行)每一行输出的*是由第二个for循环控制的,就是控制列。所有第二个for循环中要用j<n-i来限制输出次数。
不知道这样说能明白吗?
作者: 37°天黑    时间: 2015-4-6 22:20
楼上说的有理!
作者: 游戏龙    时间: 2015-4-7 20:52
同意二楼
作者: 沐浴阳光@    时间: 2015-4-7 22:07
流转少年 发表于 2015-4-6 22:14
你要输出的图形是下面这种类型的图形:
*****
****

多谢,明白了
作者: 沐浴阳光@    时间: 2015-4-7 22:08
流转少年 发表于 2015-4-6 22:14
你要输出的图形是下面这种类型的图形:
*****
****

多谢了,明白了
作者: 沐浴阳光@    时间: 2015-4-8 21:50
37°天黑 发表于 2015-4-6 22:20
楼上说的有理!

嗯,是的
作者: 沐浴阳光@    时间: 2015-4-8 21:51
游戏龙 发表于 2015-4-7 20:52
同意二楼

嗯,要努力学了
作者: 37°天黑    时间: 2015-4-8 22:08
楼主还在吗,你是哪个宿舍的?
作者: ccjlxq    时间: 2015-4-8 22:18
我替你顶一下吧楼主
作者: carescares    时间: 2015-4-8 22:22
j<n-i用来判断每行输出*的个数,从n-i可以看出输出图形为倒三角,假设有5行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2