在C ++中输出2个整数之间的奇数

时间:2016-08-10 22:54:04

标签: c++

我已经完成了适用于大多数情况的代码,用于在C ++中输出两个整数之间的奇数。然而,它不适用于负数和/或如果两个值彼此相差小于3(例如,如果两个数字是2和5,则它起作用,但如果两个数字是2并且不起作用则不起作用2& 4)。

我知道这是我的代码的原因,每次while循环迭代时都会增加2,我只是不确定如何纠正它。

View.setLayoutParams()

由于

3 个答案:

答案 0 :(得分:1)

我认为你的逻辑过于复杂了一点问题。你的意思是做这样的事吗?

void OutputOdds(int min, int max)
{
    for(int i = min; i <= max; i++)
    {
        if(i % 2 == 1 || i % 2 == -1)
            cout << i << " ";
    }
}

试验:

OutputOdds(-25, 6);
cout << endl << endl;
OutputOdds(1, 3);
cout << endl << endl;
OutputOdds(2, 4);

打印

-25 -23 -21 -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 1 3 5 

1 3 

3 

答案 1 :(得分:1)

您可以尝试这样的事情:

void printOddsBetween(int min, int max) {
  int t = min + (min % 2 == 0);
  while (t <= max) {
    cout << t << endl;
    t += 2;
  }
}

从距离min最近的奇数值开始。然后只打印每个奇数值到max

答案 2 :(得分:0)

  int min = 1;
  int max = 11;
  int counter = 0;
    for (int i = min; i <= max; i++) {
        if (i % 2 != 0) {
            System.out.println(i);
            counter += 1;
        }
    }
    System.out.println("counter" + counter);
    int xx[] = new int[counter];
    int ii = 0;
    for (int i = min; i <= max; i++) {
        if (i % 2 != 0) {
            xx[ii] = i;
            ii += 1;
        }
    }