减少for循环的更干净的解决方案

时间:2019-03-14 21:09:09

标签: c

for (int x = 0; x < 16; x=x + 5){


    for (int y = x + 4; y >= x; y--){
        printf("The integer is %d\n", y);
    }
}

上面的代码递减5次,然后向前跳5个位置并重复该过程,依此类推。

这是解决问题的一种可接受的方法,还是有一种更清洁的解决方案,可能不需要嵌套的for循环。它照原样工作,但看起来有些复杂。

包含输出以演示所需的模式:

The integer is 4                                                                                                                 
The integer is 3                                                                                                                 
The integer is 2                                                                                                                 
The integer is 1                                                                                                                 
The integer is 0                                                                                                                 
The integer is 9                                                                                                                 
The integer is 8                                                                                                                 
The integer is 7                                                                                                                 
The integer is 6                                                                                                                 
The integer is 5                                                                                                                 
The integer is 14                                                                                                                
The integer is 13                                                                                                                
The integer is 12                                                                                                                
The integer is 11                                                                                                                
The integer is 10                                                                                                                
The integer is 19                                                                                                                
The integer is 18                                                                                                                
The integer is 17                                                                                                                
The integer is 16                                                                                                                
The integer is 15  

1 个答案:

答案 0 :(得分:5)

您可以像这样使用模和除法。请注意,边界也必须更改,否则输出将不相同!

#include <stdio.h>

int main(void) {     
    for (int x = 0; x < 20; x ++) {
        printf("The integer is %d\n", x / 5 * 5 + 4 - x % 5);
    }
}

如果您认为代码需要解释,那么您的版本更好。至少在我看来是这样。