首页 > 解决方案 > 在 for 循环中减少的更清洁的解决方案

问题描述

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  

标签: c

解决方案


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

#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);
    }
}

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


推荐阅读