A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沐浴阳光@ 中级黑马   /  2015-4-6 22:05  /  1028 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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     是什么意思,求给位大神指点一下!

10 个回复

倒序浏览
你要输出的图形是下面这种类型的图形:
*****
****
***
**
*
如果要输出这种图形,第零行(图形中的第一行,代码中的第0行)输出的*的个数是输入的整数,第一行输出的个数是比第零行少一个,第二行输出的比第一行少一个,也就是比第零行少两个。这样的话,如果换成行数来算,就是每一行输出*的个数,是用户输入的数值减去行数。(在这里,你定义i=0为初始行,那么我说的第一行,在代码中其实是第0行)每一行输出的*是由第二个for循环控制的,就是控制列。所有第二个for循环中要用j<n-i来限制输出次数。
不知道这样说能明白吗?
回复 使用道具 举报 1 0
楼上说的有理!
回复 使用道具 举报
同意二楼
回复 使用道具 举报
流转少年 发表于 2015-4-6 22:14
你要输出的图形是下面这种类型的图形:
*****
****

多谢,明白了
回复 使用道具 举报
流转少年 发表于 2015-4-6 22:14
你要输出的图形是下面这种类型的图形:
*****
****

多谢了,明白了
回复 使用道具 举报

嗯,是的
回复 使用道具 举报

嗯,要努力学了
回复 使用道具 举报
楼主还在吗,你是哪个宿舍的?
回复 使用道具 举报
我替你顶一下吧楼主
回复 使用道具 举报
j<n-i用来判断每行输出*的个数,从n-i可以看出输出图形为倒三角,假设有5行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马