2017-01-21 137 views
-2

只需要我的程序一些幫助。 我不斷收到我的if語句錯誤。 請幫我一下。 這是我寫的代碼。錯誤(ISO C++禁止指針和整數之間的比較)[-fperemissive]

#include <iostream> 
 
#include <cstdlib> 
 
#include <iostream> 
 
#include <string> 
 

 
char carChoice; 
 
int random_integer = rand(); 
 
int pricePerDay; 
 
int daysOfHire; 
 
int totalCost; 
 
int age; 
 
int telephoneNumber[30]; 
 
char name[30]; 
 
char address[30]; 
 
char response [4]; 
 

 

 
using namespace std; 
 

 
int main() 
 

 
{ 
 
    cout << "Royal Rentals" << endl; 
 
    cout << "---------------------------------------------"<<"\n" <<endl; 
 
    cout << "Current Stock: " <<endl; 
 
    cout << "A - Lamborghini Aventador" <<endl; 
 
    cout << "B - Lamborghini Huracan" <<endl; 
 
    cout << "C - Mercedes Benz AMG GT S" <<endl; 
 
    cout << "D - Audi R8 V10" <<endl; 
 

 
cout << "Which car would you like to rent (A, B, C or D)" << "\n" << endl; 
 
cin >> carChoice; 
 
cout << "How many days would you like to hire the car for" << "\n" << endl; 
 
cin >> daysOfHire; 
 
cout << "How old are you?" << "\n" << endl; 
 
cin >> age; 
 

 

 
if (age < 21) 
 
{ 
 
    cout << "Sorry but you have to over the age of 21 to hire our super cars" << "\n" << endl; 
 
    cout << "Please close the program to hire a car suitable for your age" << "\n" << endl; 
 
    exit (0); 
 
} 
 

 
cout << "What is your name?" << "\n" << endl; 
 
cin >> name; 
 
cout << "Have you got a full drivers license?" "\n" << endl; 
 
cin >> response; 
 

 
if (response == 'Y' //not "Y" but only one 'Y') 
 
{ 
 
cout << "blah"<< "\n" <<endl; 
 
} 
 
else if (response == 'N') 
 
{ 
 
cout << "blah"<< "\n" << endl; 
 
} 
 

 
cout << "what is your address?" << "\n" << endl; 
 
cin >> address; 
 
cout << "what is your telephone number?"<< "\n" << endl; 
 
cin >> telephoneNumber; 
 

 
if (carChoice == 'a') 
 
{ 
 
    totalCost = daysOfHire * 685; 
 
    cout << "You have chosen the following car for hire: Lamborghini Aventador" << endl; 
 
    cout << "The price per day is 685.00 GBP" << endl; 
 
    cout << "The Total Cost is: " << totalCost << endl; 
 
    cout << "Invoice Number; " << random_integer << endl; 
 
} 
 
else if (carChoice == 'b') 
 
{ 
 
    totalCost = daysOfHire * 585; 
 
cout << "You have chosen the following car for hire: Lamborghini Huracan" << endl; 
 
cout << "The price per day is �585.00 GBP" << endl; 
 
cout << "The Total Cost is: " << totalCost << endl; 
 
cout << "Invoice Number; " << random_integer << endl; 
 
} 
 
else if (carChoice == 'c') 
 
{ 
 
    totalCost = daysOfHire * 485; 
 
cout << "You have chosen the following car for hire: Mercedes Benz AMG GT S" << endl; 
 
cout << "The price per day is �485.00 GBP" << endl; 
 
cout << "The Total Cost is: " << totalCost << endl; 
 
cout << "Invoice Number; " << random_integer << endl; 
 
} 
 
else if (carChoice == 'd') 
 
{ 
 
    totalCost = daysOfHire * 445; 
 
cout << "You have chosen the following car for hire: Audi R8 V10" << endl; 
 
cout << "The price per day is �445.00 GBP" << endl; 
 
cout << "The Total Cost is: " << totalCost << endl; 
 
cout << "Invoice Number; " << random_integer << endl; 
 
} 
 
else 
 
{ 
 
cout << "You have entered an invalid response" << endl; 
 
} 
 
}

聲明是驗證,如果你有一個有效的駕駛執照,如果沒有,則程序應該顯示一條消息,並關閉。如果他們這樣做,它應該繼續下去,以便他們可以輸入其他細節。 我錯過了什麼,可以改正我的if語句。

非常感謝, Irbaaz

+2

請編輯您的問題以提供[mcve]。 –

+0

響應是一個數組。數組不具有可比性。你需要使用像strcmp這樣的C風格函數,或者更好的std :: string。 –

+1

我對編程相當陌生。那麼我需要改變什麼? –

回答

0
if (response == 'Y') 

響應是一個數組,你不能比較的整數數組。如果您想檢查整個字符串是否包含一個'Y'符號,您應該檢查

Strlen(response) == 1 && response[0] == 'Y' 
相關問題