c++ - 必须打印到屏幕才能使程序正常工作
问题描述
所以,我的程序遇到了一些奇怪的问题,如果我写
#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(int);
int main()
{
int biggestPalindrome = 0;
for(int i = 999; i > 0; i--)
{
for(int j = i; j > 0; j--)
{
cout << "Hello" << endl; // This part
if(isPalindrome(i * j) && i * j > biggestPalindrome) biggestPalindrome = i * j;
if(i * j < biggestPalindrome) break;
}
if(i * (i-1) < biggestPalindrome) break;
}
cout << biggestPalindrome;
}
bool isPalindrome(int number)
{
int temp, rev, digit;
temp = number;
do
{
digit = number % 10;
rev = (rev * 10) + digit;
number /= 10;
} while(number != 0);
return temp == rev;
}
在这种情况下程序运行良好,但是当我注释掉第 15 行 ('cout << "Hello" << endl;') 时,程序直接返回 0。
解决方案
在函数isPalindrome
中,使用 的值rev
而不对其进行初始化。
这意味着您正在使用不确定的值。
在循环之前添加ret = 0;
以修复。
推荐阅读
- python - Ubuntu (WSL) Python 与 Python3.7 Microsoft Store 应用程序分开?
- node.js - 如何从 Node 中的另一个函数触发 websocket 发送?
- php - 在magento 2中注册后打印客户的数据
- sql-server - 是否可以在 EF 迁移的 Up 方法中更改命令超时?
- react-native - 在 API 调用上遇到问题,我正在返回类似 Unauthorized 的响应
- tensorflow-datasets - 是否有合理的方法来创建 tff 客户端数据集?
- cron - Centos7 无法运行@reboot 命令
- php - 从数组中获取单个值
- python - 如何更好地自动化需要多个程序和 URL 的程序
- linux - 将数组传递给 SSH 连接