【问题标题】:How do I get my do while loop to work in C?如何让我的 do while 循环在 C 中工作?
【发布时间】:2020-03-05 01:23:47
【问题描述】:

我是编程新手,甚至是 C 语言新手,所以请善待......我目前正在解决一个问题,需要我输入“高度”并打印一个适当高度的三角形.高度不能超过 8 或低于 1,所以我实现了一个 do while 循环,如果它超过 1 - 8 范围,它将重新提示用户输入高度。问题是:我的代码即使超出范围也会接受输入。到目前为止,这是我的代码......如果有人能告诉我我有多愚蠢,我会非常感激。

#include <cs50.h> 
#include <stdio.h>

int get_height(void);
int lineno;
int column_fill;
int main(void)
{
    int height = get_height();
    for (lineno = 1; lineno <= height; lineno++ )
    {
    for(column_fill = 0; column_fill < lineno; column_fill++)
    {
    printf("#");
    }
    printf("\n");
    }
}

int get_height(void)
{
    int height;
    do
    {
        height = get_int("Height: ");
    }while(height < 1 && height > 8);

    return height;
}

【问题讨论】:

  • height 不能同时是 &lt; 1&gt; 8 所以测试总是false。我建议while(height &lt; 1 || height &gt; 8);
  • 一个风格注意事项:您应该始终为打开的每个花括号缩进。

标签: c do-while cs50


【解决方案1】:

你需要使用||,意思是“或”。高度永远不能小于1大于8,但可以小于1大于8。

【讨论】:

  • 谢谢你。
猜你喜欢
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多