首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序按递增顺序打印标签时出现问题

程序按递增顺序打印标签时出现问题
EN

Stack Overflow用户
提问于 2020-07-25 16:18:23
回答 1查看 41关注 0票数 0

我在edX中学习cs50的C语言一天。edX中的cs50的第一周是关于做出几行锐化,其数量随着行数的增加而递增,如下所示:

代码语言:javascript
复制
#
##
###
####
#####

如果我回答"Height=5“。

我不知道该怎么做。我能在这段代码中做些什么?

下面是我的代码:

代码语言:javascript
复制
// Print escalating numbers of sharp marks
#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int n;
    do
    {
        n = get_int("Height:");
    }
    while (n > 1 && n < 8);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j == n; j++)
        {
            printf("#");
        }
        printf("\n");
    }
}
EN

Stack Overflow用户

发布于 2020-07-25 17:01:28

你的程序有两个基本问题:

1.

do while循环n > 1 && n < 8的条件错误。这样,只要n18之间,就可以迭代该循环。我认为你想要的正好相反--只有当n不在18之间时才进行迭代。请改用n < 1 || n > 8!(n > 1 && n < 8)

2.

内部for循环的条件也是错误的。for (int j = 0; j == i; j++) -使用该选项,每行只打印一个#。相反,您需要for (int j = 0; j <= i; j++)

3.

您需要在输入后打印换行符,才能正确格式化#%s的输出。

代码语言:javascript
复制
#include <cs50.h>
#include <stdio.h>

int main (void)
{
    int n;
    do
    {
        n = get_int("Height: ");
    }
    while (n < 1 || n > 8);


    putchar('\n');


    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            printf("#");
        }
        printf("\n");
    }
}

执行:

代码语言:javascript
复制
./a.out
Height: 5
#
##
###
####
#####

Online Test

从技术上讲,当您不想使用额外的语句打印换行符时,还有另一种偷偷摸摸的方法来实现。

在这里,我们将外部for循环语句更改为for (int i = 0; i <= n; i++),将内部循环语句更改为for (int j = 0; j < i; j++)

我们在外部for循环中使用了更多的迭代,并且在第一个演练中只打印换行符。

代码语言:javascript
复制
#include <cs50.h>
#include <stdio.h>

int main (void)
{
    int n;
    do
    {
        n = get_int("Height: ");
    }
    while (n < 1 || n > 8);


    for (int i = 0; i <= n; i++)
    {
        for (int j = 0; j < i; j++)
        {
            printf("#");
        }
        printf("\n");
    }
}

执行:

代码语言:javascript
复制
./a.out
Height: 5
#
##
###
####
#####

Online Test

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63086047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档