【问题标题】:Prompting user for integer 2> and >9 in C在 C 中提示用户输入整数 2> 和 >9
【发布时间】:2019-06-11 05:19:25
【问题描述】:

关于C的真正菜鸟问题...

我希望用户输入一个介于 2 和 9 之间的数字,如果他们不输入,提示会重复,直到输入我的参数中的整数。我可以让它与一个参数一起工作,即

  int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n > 8);
    return n;
}

但没有运气输入2个参数。这是sn-p:

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n > 8);
    return n;

    while (n < 2);
    return n;

}

【问题讨论】:

  • 试试while (n &gt; 8); --> while (n &gt; 8 || n &lt; 2);
  • while (n > 8 && n
  • @GenoChen (n &gt; 8 &amp;&amp; n &lt; 2) 永远不会是真的。
  • @chux 哦,是的,我的失败。

标签: c parameters integer prompt


【解决方案1】:

您可以添加两个条件来继续您的 do-while 循环。

修改你的代码如下:

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n < 3  || n > 8); // continue looping till either n is less than 3 or greater than 8
    return n;
}

编辑: 修正条件

【讨论】:

  • 数字大于 2和小于 9的相反数是:n&lt;=2 || n&gt;=9。或者n&lt;3 || n&gt;8。或者如果它打算包括 2 和 9,那么 n&lt;2 || n&gt;9
【解决方案2】:

您永远不会进入条件检查while(n &lt; 2),因为之前的条件检查或return n 都会执行。 IE。它在条件为真时循环 while (n &gt; 8) 或在条件失败时执行 return n。所以它永远不会执行第二个条件检查while (n &lt; 2)

尝试在单个 while 循环中实现逻辑 OR,如下所示

int between_2_and_8(string prompt)
{
    int n;
    do
    {
        n = get_int("%s", prompt);
    }
    while (n < 3 || n > 8);// Loops around until n is either less than 2 or greater than 8
    return n;

}

编辑:在条件检查时进行更正

【讨论】:

  • 数字大于 2和小于 9的相反数是:n&lt;=2 || n&gt;=9。或者n&lt;3 || n&gt;8。或者,如果它打算包括 2 和 9,那么 n&lt;2 || n&gt;9
猜你喜欢
  • 1970-01-01
  • 2014-02-14
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多