我应该使用什么循环以及如何使用?

时间:2016-08-19 15:19:10

标签: c loops for-loop while-loop swap

程序是,用户将输入起始值,结束值和间隔。输出应该是,start_value将被添加到间隔,直到达到结束值。如果输出大于结束值,我想显示一些消息。例如:

Enter start value:5
 Enter end value: 30
 Enter interval value: 5
 Output: 5 10 15 20 25 30 // correct output
 2nd try
 Enter start value:5
 Enter end value: 30
 Enter interval value: 6
 Output: 5 11 17 23 29 35 // wrong output

我的代码:

while(start_value <= end_value)
{
    start_value = start_value + interval_value;             
    printf("%d ",start_value);                          
}

4 个答案:

答案 0 :(得分:1)

您需要决定if条件。并且,在执行增量之前移动printf()语句。

如果start_value&gt; end_value,然后交换它们; 否则,继续相同的循环。

为方便起见,引入一个临时变量来交换值。

if(start_value > end_value){
temp = start_value;
start_value = end_value;
end_value = temp;
}

while(start_value <= end_value)
{
   printf("%d ",start_value);
   start_value = start_value + interval_value;

}

答案 1 :(得分:0)

通常,如果你知道你的起点和停止点(输入变量算作知道),For循环就是行业标准。

如果您担心起始值的条件大于结束值,则应在进入循环之前包含验证代码。我建议使用一个接受输入变量和检查的函数,然后允许程序继续或提示用户输入有效信息。

编辑:你也没有得到代码的无限循环,因为数字会增加,直到它达到最大整数(大约20亿),环绕到最小整数(大约负20亿)并且继续前进,直到达到最终值。但是,您无法使用printf("\n");清除缓冲区,这可能是您的问题所在。此外,如果条件不是如while循环条件中所述的那样,那么当起始值较大时,您可能只是没有输入它。

答案 2 :(得分:0)

逻辑上当条件变为false时,循环终止。你把所有的代码放在一起看看变量发生了什么变得更好,但是 你可以在循环中使用正确的ifbreak语句来随时切断循环的执行。

答案 3 :(得分:0)

您需要先打印,然后增量。

while(start_value <= end_value)
{
    printf("%d ",start_value);                          
    start_value = start_value + interval_value;             
}