c++回文调试
C++ palindrome debugging
我在笔记中遇到了这个问题:给定一个整数数组,编写一个函数来检查该数组中的元素是否为回文。我一直在修改我的代码,它看起来像这样:
#include<iostream>
#include<cmath>
using namespace std;
bool is_a_palindrome(int integers[], int length){
int i;
int middle = floor(length / 2);
//while (length != 0 && length > 0){
for (i = 0; i < middle; i++){
if (integers[i] != integers[length - 1 -i]){
return -2;
}
else{
return true;
}
}
}
int main(){
int array[4] = {1,2,2,1};
int length = 4;
is_a_palindrome(array, length);
}
当我运行代码时,我期望得到1
为真或-2
为假。目前,我什么都没得到。我不太确定问题出在哪里。任何帮助都是感激的。
根据注释修复代码:
#include<iostream>
#include<cmath>
using namespace std;
bool is_a_palindrome(int integers[], int length){
int i;
int middle = floor(length / 2);
//while (length != 0 && length > 0){
for (i = 0; i < middle; i++){
if (integers[i] == integers[length - 1 -i]){
return true;
}
else{
return false;
}
}
}
int main(){
int array[4] = {1,2,2,1};
int length = 4;
return is_a_palindrome(array, length);
}
您编辑的回复有几个问题:
-
只要前面的值与后面的值相同,就返回true。如果你有一个数组
{1,2,3,5,6,8,7,8,9,1}
,你的函数将返回true,因为在数组的前面和后面有一个1
。 -
在返回布尔值的函数中返回-2而不是false。
-
Main返回一个int,你返回一个调用你的辅助函数,它返回一个布尔值。
你可以用vector代替数组,并使用std::reverse函数检查vector是否相同。或者您可以将for
循环修复为不提前返回,而是检查"前后"中的值是否不相同,如果您通过整个for循环则返回true。像这样:
` for (i = 0; i < middle; i++)
{
if (integers[i] != integers[length - 1 -i])
return false;
}
return true;
`
剩下的由你来解决,但我想很多人已经为你指出了这些问题。好运!
一些注释(当你修复了问题的标记时):
- 你期待输出,但是你真的在打印东西吗?
-
main
期望您返回和int
,但您没有返回任何内容 - 为什么返回-2而不是
false
?返回类型是boolean
,所以它不能存储整数值。 - 想想把
return true
放在哪里。什么时候是回文?
您在调用回文函数之前忘记了return
。
int main() {
int array[4] = {1,2,2,1};
into length = 4;
return yourPalindromeFunction( array, length );
}
因为你没有写任何东西,c++创建了一个默认的返回值,它的值为0。
相关文章:
- C++:正在检查LinkedList中的回文-递归方法-错误
- Usaco第1.6节主要回文
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 将 S1 转换为回文,并将 S2 作为其子字符串
- 数回文词
- 最长的回文子串(C++帮助)
- 有人可以详细解释这个回文代码是如何工作的吗?
- 回文递归版本
- 如何检查C ++ STL列表是否为回文?
- 回文数在 1 到 10000 之间
- C++ - 检查结构数据类型中的单词是否为回文
- 是回文作业练习
- 回文递归不停止
- 整数数组中最长的回文
- 回文测试
- 最大的回文产品(Project Euler)——C++
- C++ 回文程序总是给出 0(假)作为输出问题;我的代码哪里有问题?
- 递归回文问题的时间复杂度,C++
- 程序以查找给定字符串中回文的子字符串的数量
- c++回文调试