2017-09-15 42 views
-12
#include <iostream> 
#include<bits/stdc++.h> 

using namespace std; 

int main() 

{ 
    string str = ""; 

    cout << "Palindrome or not?" << endl; 
    cout << "Enter text: "; 
    cin >> str; 

    isPalindrome(str); 
} 

void isPalindrome(string str); 
{ 

    originalStr = str; 
    reverse(str.begin(),str.end()); 

    if (originalStr == str) 
    { 
     cout<<"Yes!"; 
    } 
    else 
    { 
     cout << "No."; 
    } 
} 
+3

能否請您發佈的代碼,而不是它的照片? –

+2

在此處發佈代碼,而不是通過鏈接,特別是不通過位圖。 –

+0

編號[編輯]問題並粘貼在那裏的代碼。 –

回答

1

在發佈的代碼中有兩個問題。

  1. isPalindrome它在main使用之前未聲明。在main之前添加聲明。

  2. 當你定義函數時,你有一個錯字。行尾的;是該函數的聲明。然後,你有一個塊代碼。這可以通過簡單地刪除;來解決。


// Declare the function before main. 
void isPalindrome(string str); 

int main() 
{ 
    string str = ""; 

    cout << "Palindrome or not?" << endl; 
    cout << "Enter text: "; 
    cin >> str; 

    isPalindrome(str); 
} 

           // | the problematic typo. 
           // v 
void isPalindrome(string str) // ; 
{ 

    originalStr = str; 
    reverse(str.begin(),str.end()); 

    if (originalStr == str) 
    { 
     cout<<"Yes!"; 
    } 
    else 
    { 
     cout << "No."; 
    } 
} 
+0

但是移動;哪一行? – bro

+0

@bro,它需要像我一樣被刪除或註釋掉。 –

0

使用功能

isPalindrome(str); 

之前,你必須聲明它,編譯器會知道它的類型。

有函數定義

​​

錯誤分號同樣的函數應返回一個布爾值,給定的字符串是否是迴文與否。該參數應該是對原始字符串的引用。

程序可以看看下面的方式

#include <iostream> 
#include <string> 

bool isPalindrome(const std::string &s); 

int main() 
{ 
    std::string s; 

    std::cout << "Palindrome or not?" << std::endl; 
    std::cout << "Enter text: "; 
    std::cin >> s; 

    std::cout << (isPalindrome(s) ? "Yes!" : "No.") << std::endl; 
} 

bool isPalindrome(const std::string &s) 
{ 
    return s == std::string(s.rbegin(), s.rend()); 
} 

它的輸出可能是

Palindrome or not? 
Enter text: abcba 
Yes! 
相關問題