为了账号安全,请及时绑定邮箱和手机立即绑定

这道题不懂,怎么做

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(j=;j<;j++)  
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for(k=;k<;k++) 
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}


正在回答

3 回答

当i=1时,第一个for循环, 表示第一行。然后第二个for循环,因为j<=4, j=i=1,所以第二个for循环需要运行四遍,输出四个空格。然后第三个for循环,k <= 2 * i - 1是规定运行几次,当i=1时,k<=1,因为k=1,所以第三个for循环运行一次,输出一个*号。所以第一行就是四个空格,一个*号。

当i=2时, 第一个for循环, 表示第二行。然后第二个for循环,因为j<=4, j=i=2,所以第二个for循环需要运行三遍,输出三个空格。然后第三个for循环,k <= 2 * i - 1是规定运行几次,当i=2时,k<=3,因为k=1,所以第三个for循环运行三次,输出三个*号。所以第二行就是三个空格,三个*号。

...........

以此类推

2 回复 有任何疑惑可以回复我~
#1

慕哥2204862

那*的位置怎么确定的?
2016-04-03 回复 有任何疑惑可以回复我~

这道题有很多种方法,不一定要按照题目的标准答案,你可以自己用VC6。0测试。能输出一样的图案就行。

标准答案思路:第i行5-j个空i*2-1个*,三角形为第一行4个空格1个*,第二行3个空格3*,第三行2个空格5*,第四行1空7*.

当然你也可以当成第一行3个空格1个*,第二行2个空格3*,第三行1个空格5*,第四行0空7*.只是要循环条件改一下

0 回复 有任何疑惑可以回复我~

#include <stdio.h>

int main()

{

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(j=i;j<5;j++) 
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for(k=0;k<2*i-1;k++)
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这道题不懂,怎么做

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信