程序是,用户将输入起始值,结束值和间隔。输出应该是,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);
}
答案 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时,循环终止。你把所有的代码放在一起看看变量发生了什么变得更好,但是
你可以在循环中使用正确的if
和break
语句来随时切断循环的执行。
答案 3 :(得分:0)
您需要先打印,然后增量。
while(start_value <= end_value)
{
printf("%d ",start_value);
start_value = start_value + interval_value;
}