Visual C ++ компилятор игнорирует первый оператор if

Я новичок в этом и работаю над своей первой программой if / else. У меня возникают проблемы с получением первого оператора if, который распознает мой ввод «r». Я пытался играть только с одним утверждением за раз, я был в состоянии ввести все примеры того, что учитель дал нам с желаемым результатом для дома и бизнеса. Однако, когда я полностью запускаю программу, у меня возникает проблема. Я выбираю R для жилых помещений, 0 для дополнительных подключений, 0 для каналов премиум-класса, и вместо выхода в размере 18,50 долларов США я получаю плату за бизнес в размере 75,00 долларов США. Я уверен, что это простая ошибка, но я не могу понять, что я делаю неправильно. Может ли кто-нибудь, кто знает, как работать if / else, дать мне некоторое представление об этом!

#include "stdafx.h"#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;

int main()

{
const float BASIC_RESIDENTIAL   =   18.50;
const float BASIC_BUSINESS      =   75.00;
const float CONNECT_RESIDENTIAL =   6.50;
const float CONNECT_BUSINESS    =   5.00;
const float PREMIUM_RESIDENTIAL =   7.50;
const float PREMIUM_BUSINESS    =   50.00;char    customerType;
int     numOfConnections;
int     numOfPremiumChannels;
float   amountCableBill;

cout << fixed << setprecision(2);
cout << "Residential or Business [R or B]?   ";
cin  >> customerType;
cout << endl << endl;
cout << "How many Additional Connections?    ";
cin  >> numOfConnections;
cout << endl << endl;
cout << "Total number of Premium Channels:   ";
cin  >> numOfPremiumChannels;
cout << endl << endl;if (customerType == 'R' || customerType == 'r')
{
amountCableBill = BASIC_RESIDENTIAL + CONNECT_RESIDENTIAL * numOfConnections +       PREMIUM_RESIDENTIAL * numOfPremiumChannels;
}
//else customerType == 'B' || customerType == 'b';   // unnecessary
{
if (numOfConnections <= 9)

amountCableBill = BASIC_BUSINESS + PREMIUM_BUSINESS * numOfPremiumChannels;

else
amountCableBill =  BASIC_BUSINESS + (numOfConnections - 9) * CONNECT_BUSINESS + PREMIUM_BUSINESS *numOfPremiumChannels;
}

cout << "Total amount of Cable Bill:  "  << amountCableBill << endl << endl;
cout << "Press <ENTER> to end..." << endl;_getch();

return 0;
}

0

Решение

Пока состояние else if (customerType == 'B' ...) может быть излишним, вы все равно должны поставить else перед открывающей скобой ветки.

Это

if (condition) { code } else { code }
1

Другие решения

Тебе нужно else в condition (если не хочешь «some other codeисполняться каждый раз)

if (customerType == 'R' || customerType == 'r')
{
//Some Code
}
else  //<--Notice else
{
//Some other code.
}
1

По вопросам рекламы [email protected]