c - 如何打印从 C 中的 scanf 输入整数开始递减的奇数?

如果您输入偶数,则只会打印奇数,直到它达到 0。(不会打印 0)。例如,如果您输入 10,则输出将为 9、7、5、3、1。

这是我想出来的。我想知道我应该将 x 递减多少以获得所需的输出。

int x;
scanf("%d", &x);
while (x >= 0) {
  printf("%d", x);
  x = x - 2;
}

最佳答案

I'm wondering what should I decrement x by to get the desired output.

减 2 没问题,只要您始终从奇数开始。所以你可以把循环改成这样:

for ( int i = x % 2 ? x : x - 1; // Is x odd? good. 
                                 // Otherwise, start from the previous one.
      i > 0;
      i -= 2 ) {
    printf("%d\n", i);
}

https://stackoverflow.com/questions/66383364/

相关文章:

python - 获取包含在列表列表中的字典的值

java - 如何使用流将映射值聚合到集合中

r - 在列标题和成对变量中嵌入数据的数据透视表

c++ - SFINAE 无法正确判断方法是否存在

aws-lambda - 使用排序键删除 DynamoDb

java - 追加java静态变量

c++ - 如何将 Arduino 的模拟输入读数从草图转换为 .WAV

c - execl参数混淆

javascript - 如何将共享一个公共(public)键的两个对象的两个值合并在一起并返回它?

javascript - 翻转所有卡片,但想一张一张地翻转