gpt4 book ai didi

c - 查找范围内的所有有序数字,如何在 C 中 while 循环停止之前打印最后一个值,并且每行仅打印 10 个值?

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:50 24 4
gpt4 key购买 nike

C 程序的目标是打印出 100 到 999 之间的所有有序数字。有序数字是指与右边的数字相比至少小 1 的数字 (例如 123、456 和 159 都是有序的数字)。

我开始在 1 处设置三个 integerxyz23,因为这是此范围内可能的最低有序数。我的想法是首先递增 z 以便我们得到:123, 124, 125, .. 129,然后当它达到 9 时递增 y 由 1 和 z 设置回 y+1 并从那里开始:134、135、136..139 等。while 循环 检查数字是否达到 100999 之间的最后一个数字,即 789。我到目前为止的“工作”代码粘贴在下面。

到目前为止,逻辑可以打印出 100-999 之间的每个有序数字,但无法打印出最后一个 789 并停止打印在 689 之前 x 最后一次递增。我花了很长时间试图弄清楚,但似乎找不到放置此打印件的位置或可以更改逻辑以访问此最终打印件的位置,其中 x 再次递增,以便789 显示在答案中。

另外,我正在处理的问题提到在返回之前只打印 10 个数字,但我也找不到执行此操作的方法。我对 C 语言很陌生,所以我想知道是否有人能解决这个问题并给我一些提示或指导?我是否完全以错误的方式解决了这个问题并且有更简单的方法来做到这一点?

感谢大家的提前帮助。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
int x, y, z;
x = 1;
y = 2;
z = 3;

while(x != 7 || y != 8 || z != 9) {
printf("%d%d%d \n", x, y, z); // print well-ordered number

if(y==8) {
x++; // only increment x when y is reached the last position
y = x+1; // put y in the next correct position
z = y; // put z in the next correct position
}
if(z==9) {
y++; // only increment y when z's reached the last position
z = y; // reset z's position
}

z++; // increment z as it's always the first priority to maintain a well-ordered number

}


return 0;


}

最佳答案

不是检查 != ,而是检查 <= 。

一切安好

关于c - 查找范围内的所有有序数字,如何在 C 中 while 循环停止之前打印最后一个值,并且每行仅打印 10 个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40151408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com