我已经完成了适用于大多数情况的代码,用于在C ++中输出两个整数之间的奇数。然而,它不适用于负数和/或如果两个值彼此相差小于3(例如,如果两个数字是2和5,则它起作用,但如果两个数字是2并且不起作用则不起作用2& 4)。
我知道这是我的代码的原因,每次while循环迭代时都会增加2,我只是不确定如何纠正它。
View.setLayoutParams()
由于
答案 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;
}
}