Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Astrox
12 / 12 / 2
Регистрация: 20.12.2008
Сообщений: 73
1

Полная форма разветвления

13.07.2010, 13:36. Просмотров 545. Ответов 5
Метки нет (Все метки)

Оплата работ зависит от типа работы: "а", "b", "c" и вычисляется по неким формулам записаным в коде.
Для каждого типа работы есть процент налога 10%, 15%, 20% для "а", "b", "c" соотвецтвенно.
Нужно ввести тип работы и вывести данные: тип работы, заработная плата, размер налога, и сумма к выдаче (с вычетом налога).

Написал программу, компилирует, запускает, но почему-то, будь то при вводе любого типа выводит данные типа "с", правильно выводит только букву какую ввел (тип работы).

Не могу понять в чем дело. Прошу помощи.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* N4(V13_1) */
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
    {
    clrscr();
    float x,y,f,z; char c[1];
    cout<<"Введите тип работы (\"a\",\"b\" или \"c\"): ";
    cin>>c;
    if(c=="a") {y=50+(abs(cos(pow(13,2))-0.51)*sin(3*13-4)-4.44);
    cout<<"Тип работы-"<<c<<"\nЗаработная плата: "<<y;
    x=(y/100)*10;
    cout<<"\nРазмер налога 10%-"<<x;
    z=y-x;
    cout<<"\nСумма к выдаче: "<<z;}
 
    else
        if(c=="b") {y=100+cos(2.1*13)*sin(abs(13))/0.15-5.8;
        cout<<"\nТип работы-"<<c<<"\nЗаработная плата: "<<y;
        x=(y/100)*15;
        cout<<"\nРазмер налога 15%-"<<x;
        z=y-x;
        cout<<"\nСумма к выдаче: "<<z;}
 
        else
            y=135+abs(cos(2*pow(13,3))+2*sin(13/1.2-3.4))+10.51*cos(abs(3*13));
            cout<<"\nТип работы-"<<c<<"\nЗаработная плата: "<<y;
            x=(y/100)*20;
            cout<<"\nРазмер налога 20%-"<<x;
            z=y-x;
            cout<<"\nСумма к выдаче: "<<z;
        getch();
    }

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2010, 13:36
Ответы с готовыми решениями:

Разветвления
Даны действительные числа a,b,c. Удвоить эти числа, если a=&gt;b=&gt;c, и заменить их...

Разветвления и матрицы
Помогите пожалуйста написать 2 задачи... буду очень благодарен! Задача 1....

тема Разветвления.
Помогите пожалуйста решить задачку... На языке C++...

Алгоритмы разветвления
Народ помогите!!!Надо прогу написать на Borland С++ 5.02(НЕ BUILDER!!!),условия...

Приложение с использованием разветвления
Создать приложение с использовании разветвления на языке С++: Пусть оплата...

5
Nameless One
Эксперт С++
5788 / 3437 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
13.07.2010, 13:55 2
Синтаксис оператора if такой:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(expression1)
{
    operation1;
    operation2;
    //..
} else if(expression2)
{
    operation1;
    operation2;
    //...
}
//...
else
{
    operation1;
    operation2;
    //...
}
Фигурные скобки можно опускать в том случае, если блок состоит из одной команды!

Добавлено через 1 минуту
Например:
C
1
2
3
4
5
6
7
8
if(expression)
    operation1;//Без фигурных скобок
else
{
    //С фигурными скобками
    operation2;
    operation3;
}
0
Astrox
12 / 12 / 2
Регистрация: 20.12.2008
Сообщений: 73
13.07.2010, 14:02  [ТС] 3
Ну в конце там упустил фигурные скобки, но и с ними пробывал, не помогло...
0
M128K145
Эксперт JavaЭксперт С++
8327 / 3548 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
13.07.2010, 14:14 4
а если так
C
1
2
3
4
5
6
//код
char c;
cout<<"Введите тип работы (\"a\",\"b\" или \"c\"): ";
cin>>c;
if(c=='a')
//код
и постоянно делать проверку символа с символом, а не массива со строкой
1
Nameless One
Эксперт С++
5788 / 3437 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
13.07.2010, 14:24 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cmath>
 
#define PRINT(A) std::cout << #A << " = " << A << std::endl;
 
int main()
{
    std::cout << "Input the type of job (\'a\', \'b\', \'c\'):" << std::endl;
    char type;
    std::cin >> type;
    type=tolower(type);
    if((type<'a')||(type>'c'))
    {
        std::cout << "An unexpected character found. Bye-bye!!!" << std::endl;
        system("pause");
        exit(EXIT_FAILURE);
    }
    double cash, tax, profit, taxPercentage;
    switch(type)
    {
    case 'a':
        cash=50+(abs(cos(pow(13.0, 2))-0.51)*sin(3.0*13-4)-4.44);
        taxPercentage=0.1;
        break;
    case 'b':
        cash=100+cos(2.1*13)*sin(abs(13.0))/0.15-5.8;
        taxPercentage=0.15;
        break;
    default:
        cash=135+abs(cos(2*pow(13.0, 3))+2*sin(13/1.2-3.4))+10.51*cos(abs(3.0*13));
        taxPercentage=0.2;
    }
    tax=cash*taxPercentage;
    profit=cash-tax;
    PRINT(type);
    PRINT(cash);
    PRINT(taxPercentage);
    PRINT(tax);
    PRINT(profit);
    system("pause");
    return EXIT_SUCCESS;
}
0
Astrox
12 / 12 / 2
Регистрация: 20.12.2008
Сообщений: 73
13.07.2010, 14:24  [ТС] 6
M128K145, Помогло спасибо
Nameless One, спасибо за старания, но мне нужно было именно полным разветвлением, не "switch"
0
13.07.2010, 14:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2010, 14:24

задача на сочетание цикла и разветвления
Даны натуральные числа п, р, целые числа A1 ..., An,. Получить произведение...

Разветвления
Даны действительные числа х, у. Получить мах (х,у)

Сочетание цикла и разветвления. Процедуры и функции
Кошмар, сегодня нужно здать, иначе выгонят( Совсем не пойму как это сделать(...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru