我做了一些实验,拔出头发来解决问题,请帮忙!
#include <stdio.h>
int main() {
int USD , JPY;
int lower,upper,skip;
lower = 1;
upper = 1000;
skip = 50;
USD = lower;
while (USD <= upper) {
JPY = USD * 114;
printf("%d\t\%d\n", USD, JPY);
USD = USD + skip;
}
}
结果:
1 114
51 5814
101 11514
151 17214
etc
我的预期结果如下:
1 114
50 5700 ----> incremented by 49
100 11400 -----> incremented by 50
150 17100 -----> incremented by 50 and same with the rest, all incremented by 50
答案 0 :(得分:1)
尝试
USD = USD + skip - (USD == 1);
lower
为1时有效。
如果您希望按照@EOF指示的每个lower
使其成为通用
USD = USD + skip - (USD == lower ? lower : 0);
答案 1 :(得分:0)
根据您的代码,您获得的结果是正确的。这是因为,最初USD = 1并且在第一次迭代中,当你做USD = USD + skip时,它实际上意味着USD = 1 + 50 = 51。 在第二次迭代结束时,USD = 101,因为USD = 51 + 50,同样在所有其他迭代中,USD增加了50。
要获得您期望的结果,您必须使用循环中的以下代码替换USD = USD + 50:
if(USD==1)
USD=USD+49;
else
USD=USD+50;
通过执行此操作,您将获得预期的答案
答案 2 :(得分:0)
永远不会忘记在询问问题时调试的权力。每当你看到输出与预期不同时,只需调试即可。
#include <stdio.h>
int main() {
int USD , JPY;
int lower,upper,skip;
lower = 1;
upper = 1000;
skip = 50;
USD = lower;
do {
JPY = USD * 114;
printf("%d\t\%d\n", USD, JPY);
USD = lower * skip;
lower ++;
} while (USD <= upper);