Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Astrox
12 / 12 / 1
Регистрация: 20.12.2008
Сообщений: 73
#1

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

13.07.2010, 13:36. Просмотров 487. Ответов 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();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2010, 13:36     Полная форма разветвления
Посмотрите здесь:

Разветвления - C++
Даны действительные числа a,b,c. Удвоить эти числа, если a=&gt;b=&gt;c, и заменить их абсолютными значениями, если это не так (TC)

тема Разветвления. - C++
Помогите пожалуйста решить задачку... На языке C++ http://img7.imageshost.ru/imgs/091225/feb88bd24d/3b97d.jpg

Алгоритмы разветвления - C++
Народ помогите!!!Надо прогу написать на Borland С++ 5.02(НЕ BUILDER!!!),условия такие: &quot;Дано два натуральных числа. Расположить их таким...

Разветвления и матрицы - C++
Помогите пожалуйста написать 2 задачи... буду очень благодарен! Задача 1. Разветвления : Даны три различных числа. Большее уменьшить...

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

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

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

Циклические программы с регулярной сменой аргумента, содержащих разветвления - C++
Лабораторная работа 4. Циклические программы с регулярной сменой аргумента, содержащих разветвления 4.6 вычислить разницу между...

Вызов методов через main при использовании разветвления - C++
Доброго времени суток. Столкнулся с проблемой: как с помощью if вызывать различные методы из класса. Укажите на ошибки. int main() { ...

Полная остановка программы - C++
Здравствуйте, подскажите как в c++ можно плностью остановить и выключить программу, что-бы часть кода не выполнялось.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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;
}
Astrox
12 / 12 / 1
Регистрация: 20.12.2008
Сообщений: 73
13.07.2010, 14:02  [ТС]     Полная форма разветвления #3
Ну в конце там упустил фигурные скобки, но и с ними пробывал, не помогло...
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
13.07.2010, 14:14     Полная форма разветвления #4
а если так
C
1
2
3
4
5
6
//код
char c;
cout<<"Введите тип работы (\"a\",\"b\" или \"c\"): ";
cin>>c;
if(c=='a')
//код
и постоянно делать проверку символа с символом, а не массива со строкой
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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;
}
Astrox
12 / 12 / 1
Регистрация: 20.12.2008
Сообщений: 73
13.07.2010, 14:24  [ТС]     Полная форма разветвления #6
M128K145, Помогло спасибо
Nameless One, спасибо за старания, но мне нужно было именно полным разветвлением, не "switch"
Yandex
Объявления
13.07.2010, 14:24     Полная форма разветвления
Ответ Создать тему
Опции темы

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