在C中循环以增加值

时间:2017-03-18 12:02:44

标签: c

我做了一些实验,拔出头发来解决问题,请帮忙!

#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

3 个答案:

答案 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);