gpt4 book ai didi

c++ - 打印给定范围内的所有回文数

转载 作者:行者123 更新时间:2023-11-28 00:05:07 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来打印 [a, b] 范围内的所有回文。到目前为止,我已经写了这个,但是在我输入 a、b 的值后没有打印任何内容。缺什么?

#include "stdafx.h"
#include <iostream>
using namespace std;

int t = 0, rmd, z, a, b;

int reverse() {
while (z != 0) {
rmd = z% 10;
t = t * 10 + rmd;
z/= 10;
}

return t;
}

int palin() {
if (a == reverse()) {
return 1;
}
else
return 0;

}

int main() {

cout << "a: "; cin >> a;
cout << "b: "; cin >> b;

while (a <= b) {
z = a;
if (palin())
cout << a << endl;
a++;
}
system("pause");
return 0;
}

最佳答案

问题是变量 t 不是您的 reverse() 函数的本地变量。它的值在接下来的调用中仍然存在,因此 reverse 的结果变成了与实际调用无关的垃圾。

您需要将 t 设置为 reverse() 的局部变量以解决此问题。

一般来说,养成在变量所属的最内层范围内声明变量而不破坏代码的习惯是个好主意。在这种情况下,这将是 treverse() 函数的范围,以及其余变量的 main 的范围; palin 应该以a 为参数。

关于c++ - 打印给定范围内的所有回文数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36156414/

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