|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.12.2009, 20:40 | #1 |
Форумчанин
Регистрация: 04.02.2009
Сообщений: 141
|
С++,циклы и операторы ветвления
Подскажите как можно упростить код или исправить его? Весь день не могу решить.=)
Программа должна использовать цикл для запроса доходов и выдачи подлежащего к выплате налога.Цикл должен прерываться при вводе отрицательного или не числового значения.Налог считается по формуле:если человек заработал 38000р. то он должен заплатить налог 5000*0.0+10000*0.1+20000*0.15+3000* 0.2 или 4600 руб. Заданная шкала налогооблажения: первые 5000 р -налог 0% следующ. 10000р - налог 10% следующ. 20000р - налог 15% свыше 35000 р - налог 20% #include <cstdlib> #include <iostream> #include <cctype> using namespace std; const int size = 7; int main(int argc, char *argv[]) { double donation[size]; int vvod; cout<<"Vvedite summu dlya nalogooblajenia\n"; int i = 0; cin >> vvod; while (i < size && !isalpha(vvod)>0) { if(vvod>=5000 && vvod<10000) { donation[i] = vvod*0.0; cout<<"summa s nalogom: "<<donation[i]<<"\n"; } else if (vvod>=10000 && vvod<20000) { donation[i] = vvod*0.1; cout<<"summa s nalogom: "<<donation[i]<<"\n"; } else if (vvod>=20000 && vvod<35000) { donation[i]=vvod*0.15; cout<<"summa s nalogom: "<<donation[i]<<"\n"; } else if (vvod>=35000) { int razn=vvod-35000; donation[i]=(5000*0.00)+(10000*0.1)+(20000*0.1 5)+(razn*0.20) ; cout<<"summa s nalogom: "<<donation[i]<<"\n"; } else cout<<"vi vveli ne pravilniy simvol\n"; cout<<"vvedite summu dlay nalogooblajenia:\n"; cin >> vvod; i++; }; cout<<"spasibo za uplatu nalogov."; system("PAUSE"); return EXIT_SUCCESS; } Последний раз редактировалось -ushёl-; 12.12.2009 в 21:08. |
12.12.2009, 22:25 | #2 |
Форумчанин
Регистрация: 05.12.2009
Сообщений: 253
|
Код тяжелый.
Проще наверное: 1. Запросить сумму. 2. Если меньше нуля то (не тупите пожалуйста, сколько денег вы заработали?) 3. Определить интервал если < 5000 то (Функция вычисления налога с выводом суммы налога на консоль) если >5000 и <10 000 то (Функция вычисления налога с выводом суммы налога на консоль) если > 10 000 и < 20 000 то (Функция вычисления налога с выводом суммы налога на консоль) если > 20 000 и < 35 000 то ( Функция вычисления налога с выводом суммы налога на консоль) если > 35 000 (Сталина на вас нет, а то бы быстро уравнял, и Функция вычисления налога с выводом суммы налога на консоль) 4. Функция вычисления налога с выводом суммы налога на консоль
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
Последний раз редактировалось atenon; 13.12.2009 в 12:28. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ветвления. | glupayastudentka | Помощь студентам | 1 | 23.06.2009 22:38 |
Вопрос относительно ветвления if/else | ROD | Помощь студентам | 2 | 03.12.2008 18:12 |
Программы с использованием операторов ветвления и циклов | Vitas1234 | Помощь студентам | 1 | 11.06.2008 17:41 |
Задачи с использованием ветвления | n01R | Помощь студентам | 12 | 16.01.2008 11:54 |