Вопрос Почему не работает условный оператор C++!!Помогите.

Регистрация
30 Сен 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
При написании задачи, столкнулся с проблемой, почему условный оператор не хочет принимать мое число

Сама программа:
//////////////////////////////////////////////////////Программа/////////////////////////////////////////
#include
using namespace std;
int main() {
int edin[10] = { 4,4,3,3,6,4,5,4,6,6 };
//////////////////////////////
int n;
cin >> n;
int sum = 0;
//////////////////////////////
if (n == 0)
sum += 4;
else if (n == 10)
sum += 6;
else if (n == 100)
sum += 3;
////////////////////////////////
else {

/////////////////////////однозначные
if (n / 10 == 0) { sum += edin[n]; }
/////////////////////////двузначные
else if(n/100==0) {
if (n % 100 == 14) { sum += 5; sum += 7; cout << sum; system("pause"); return 0; }
else if (n / 10 % 10 == 1) { sum += 7; }
else if (n / 10 % 10 == 4) { sum += 5; }
else { sum += edin[n / 10 % 10]; sum += 5; }
if (n % 10 > 0) { sum += edin[n % 10]; }
else if (n / 1000 == 0) {
cout << "+";
////////////////////////трехзанчные
if (n / 100 == 1) { sum += 3; }
else if (n / 100 <= 9) { sum += edin[n / 100]; sum += 3; }
if (n % 100 == 14) { sum += 5; sum += 7; cout << sum; system("pause"); return 0; }
else if (n / 10 % 10 == 1) { sum += 7; }
else if (n / 10 % 10 == 4) { sum += 5; }
else { sum += edin[n / 10 % 10]; sum += 5; }
if (n % 10 > 0) { sum += edin[n % 10]; }
}
}
}
cout << sum;
system("pause");
return 0;
}
////////////////////////////////////////////////////////////////////////////////////////////

Строка с оператором else if (n / 1000 == 0) не хочет принимать трехзначные числа, но при этом работает другой оператор который отвечает за двузначные числа else if(n/100==0) , он принимает их и программа работает правильно. Я не понимаю почему??? Вводи числа 101, 203,452
 
Назад
Сверху