2017-01-21 134 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' 
相关问题