【问题标题】:C++ Integer Array Palindrome CheckerC++ 整数数组回文检查器
【发布时间】: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


【解决方案1】:

如果 (array1[u] = 确定器[u])

应该是

如果 (array1[u] == 确定器[u])

【讨论】:

  • 没注意到。非常感谢,已调试:)
  • 没问题。您可以将其标记为已回答(或删除 / 等)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
相关资源
最近更新 更多