-2

Just needed some help with my program. I keep getting an error with my if statement. Could you help me out please. This is the code I have written.

#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;
}
}

The statement is to verify if you have a valid driving license, if you don't then the program should display a message and close. If they do then it should continue so they can enter the rest of their details. What am I missing from it and could some correct my if statement.

Many thanks, Irbaaz

  • 2
    Please [edit] your question to provide a [mcve]. – Baum mit Augen Jan 21 '17 at 17:57
  • response is an array. arrays are not comparable. You need to use C-style functions like strcmp, or better std::string. –  Jan 21 '17 at 18:05
  • 1
    I am fairly new to programming. So what do I need to change? – irbaaz hussain Jan 21 '17 at 18:06
  • 3
    Try googling "c++ how to compare character array" and find answers like http://stackoverflow.com/questions/1330550/c-compare-char-array-with-string and http://stackoverflow.com/questions/1639411/comparing-character-arrays-and-string-literals-in-c – TheUndeadFish Jan 21 '17 at 18:10

1 Answers1

0
if (response == 'Y')

Response is an array, you cannot compare an array with an integer. If you want to check that the whole string consists of one 'Y' symbol, you should check

Strlen(response) == 1 && response[0] == 'Y'
Petr
  • 259
  • 4
  • 18