【发布时间】:2016-05-13 15:08:49
【问题描述】:
我使用以下代码对整数数组进行回文检查,并使用变量“declare”的值作为回文检查。我使用的技术是如果最后声明为 1,则数组是回文,否则不是。但它不起作用。在代码的最后,它始终保持被初始化的 declare 值,独立于其余代码。请调试。
#include <iostream>
using namespace std;
void main()
{
int array1[3] = {0,0,1};
int j = 2;
cout << "Given Array is:\n";
for (int i = 0; i < 3; i++)
cout << array1[i];
cout << endl;
int determiner[3];
for (int i = 0; i <3; i++){
determiner[j] = array1[i];
j -= 1;
}
cout << "Reversed Array is:\n";
for (int i = 0; i < 3; i++)
cout << determiner[i];
cout << endl;
int declare;
for (int u = 0; u < 3; u++)
{
if (array1[u] = determiner[u])
{
declare = 1;
}
if (array1[u] != determiner[u])
{
declare = 0;
break;
}
}
cout << endl;
cout << declare<< endl;
if (declare==1)
cout << "Given Array is Palindrome. Cheers!!!\n";
if (declare==0)
cout << "Emhmm! This aint Palindrome.\n";
system("pause");
}
【问题讨论】:
-
欢迎来到 Stack Overflow!听起来您可能需要学习如何使用调试器来逐步执行代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。延伸阅读:How to debug small programs
-
我投票决定将此问题作为离题结束,因为我们不是调试服务。
-
请注意,在标准 C++ 中,在全局命名空间中声明
void main()是非法的。你应该使用标准的int main(void),除非你有特殊的理由使用非标准的声明。 -
你确定
if (array1[u] = determiner[u])中的作业是你想要的吗? -
您可以使用
else语句代替if (array1[u] !=,因为第一个if失败意味着值不相等。
标签: c++ arrays integer palindrome