С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
1

Калькулятор выдает неправильный результат

10.02.2022, 14:01. Показов 1074. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет форумчане ! помогите пожалуйста пофиксить мою ошибку. выдает не правильный результат.
вот мой код:

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
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
 
using namespace std;
 
double summ(double* first_num, double* second_num)
{
    return *first_num + *second_num;
}
double subtraction(double *first_num, double *second_num)
{
    return *first_num - *second_num;
}
double multip(double *first_num, double *second_num)
{
    return *first_num * *second_num;
}
double division(double *first_num, double *second_num)
{
    return *first_num / *second_num;
}
 
 
void main()
{
 
    {
        int tmp = 0;
        double frist_num = 0;
        double second_num = 0;
        double result = 0;
 
        cout << "enter first number -> ";
        cin >> frist_num;
        cout << "\n";
 
        double(*sum1)(double*, double*) = summ;
        double (*subtraction1)(double*, double*) = subtraction;
        double (*multip1)(double*, double*) = multip;
        double (*division1)(double*, double*) = division;
 
        void* operation[4]{ *sum1, *subtraction1, *multip1, *division1 };
        cout << "[1] sum (+)\n" << "[2] subtraction (-)\n" << "[3] multip (*)\n" << "[4] division (/)\n";
        cout << "Select an action -> ";
        cin >> tmp;
        cout << "\n";
 
        cout << "enter second number -> ";
        cin >> second_num;
        cout << "\n";
 
        result = *(double*)operation[tmp];
        cout << "result -> " << &result << "\n";
    }
}
за ранее спасибо !
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2022, 14:01
Ответы с готовыми решениями:

Выдает неправильный результат С++
Задание Найти среднее арифметическое действительных корней трёх квадратных уравнений. #include...

Не считает калькулятор, выдает неправильный ответ
Здравствуйте, скажите пожалуйста, почему у меня при вводе 2+3 выдает какой-то бред? #include...

Выдает неправильный результат. В чём ошибка?
Нужно найти высоту треугольника (недоделанно) с координатами A(0;0), B(23;22), C(-23;24) Параметры...

Работа с матрицами, программа выдает неправильный результат
помогите пожалуйста,ВЫВОДИТ НЕ ТОТ РЕЗУЛЬТАТ. MAIN #include &quot;stdafx.h&quot; #include &quot;Header.h&quot; ...

13
2337 / 1824 / 753
Регистрация: 27.07.2012
Сообщений: 5,398
10.02.2022, 14:22 2
Цитата Сообщение от rar60nagib Посмотреть сообщение
выдает не правильный результат.
У вас не результат, а просто ересь выдаётся. Кто вам такое показал?
Цитата Сообщение от rar60nagib Посмотреть сообщение
C++
1
2
3
4
5
6
7
double(*sum1)(double*, double*) = summ;
        double (*subtraction1)(double*, double*) = subtraction;
        double (*multip1)(double*, double*) = multip;
        double (*division1)(double*, double*) = division;
void* operation[4]{ *sum1, *subtraction1, *multip1, *division1 };
// ...
result = *(double*)operation[tmp];
C++
1
2
3
4
typedef double (*operation_t)(double *, double *);
operation_t operation[4] = { summ, substraction, multip, division };
// ...
double result = operation[tmp](&first_num, &second_num);
0
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
10.02.2022, 14:39  [ТС] 3
Цитата Сообщение от John Prick Посмотреть сообщение
double result = operation[tmp](&first_num, &second_num);
"&first_num" подчеркивает и выдает ошибку. очень извиняюсь за глупые вопросы но в чем может быть ошибка то ?
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
10.02.2022, 14:41 4
rar60nagib, а ты operation_t везде написал? И в typedef? и в массивах?
0
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
10.02.2022, 14:45  [ТС] 5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а ты operation_t везде написал? И в typedef? и в массивах?
да указал
0
2337 / 1824 / 753
Регистрация: 27.07.2012
Сообщений: 5,398
10.02.2022, 14:46 6
Цитата Сообщение от rar60nagib Посмотреть сообщение
"&first_num" подчеркивает и выдает ошибку
Изменённый код приведите.
0
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
10.02.2022, 14:47  [ТС] 7
Цитата Сообщение от John Prick Посмотреть сообщение
Изменённый код приведите.
вот пожалуйста :

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
43
44
45
46
47
48
49
#include <iostream>
 
using namespace std;
 
 
double summ(double* first_num, double* second_num)
{
    return *first_num + *second_num;
}
double subtraction(double *first_num, double *second_num)
{
    return *first_num - *second_num;
}
double multip(double *first_num, double *second_num)
{
    return *first_num * *second_num;
}
double division(double *first_num, double *second_num)
{
    return *first_num / *second_num;
}
 
 
void main()
 
    {
        int tmp = 0;
        double frist_num = 0;
        double second_num = 0;
 
        cout << "enter first number -> ";
        cin >> frist_num;
        cout << "\n";
 
        typedef double (*operation_t)(double*, double*);
        operation_t operation[4] = { summ, subtraction, multip, division };
        cout << "[1] sum (+)\n" << "[2] subtraction (-)\n" << "[3] multip (*)\n" << "[4] division (/)\n";
        cout << "Select an action -> ";
        cin >> tmp;
        cout << "\n";
 
        cout << "enter second number -> ";
        cin >> second_num;
        cout << "\n";
 
        double result = operation[tmp](&first_num, &second_num);
        cout << "result -> " << result << "\n";
    }
}
0
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
10.02.2022, 14:53 8
Лучший ответ Сообщение было отмечено rar60nagib как решение

Решение

лишняя скобка }

Добавлено через 1 минуту
frist_num
first_num
1
2337 / 1824 / 753
Регистрация: 27.07.2012
Сообщений: 5,398
10.02.2022, 14:53 9
Ну батенька. У вас frist_num, потом first_num.
1
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
10.02.2022, 14:53  [ТС] 10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
лишняя скобка }
это я убрал уже после того как измененный код вам скинул. "&first_num" все так же выдает ошибку (
0
2337 / 1824 / 753
Регистрация: 27.07.2012
Сообщений: 5,398
10.02.2022, 14:53 11
И double result = operation[tmp - 1](&first_num, &second_num); ещё. Массивы с 0 нумеруются.
1
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
10.02.2022, 14:54 12
rar60nagib, а я как это должен определить? И почему нет реакции на второе моё замечание?
1
0 / 0 / 0
Регистрация: 14.01.2022
Сообщений: 21
10.02.2022, 14:55  [ТС] 13
Цитата Сообщение от John Prick Посмотреть сообщение
Ну батенька. У вас frist_num, потом first_num.
чеерт! спасибо тебе большоее ! я бы сам не заметил! все заработало! пасиб ребят еще раз
0
456 / 323 / 64
Регистрация: 09.03.2016
Сообщений: 3,204
10.02.2022, 15:07 14
На невнимательность.
0
10.02.2022, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2022, 15:07
Помогаю со студенческими работами здесь

Программа для подсчета калорий выдает неправильный результат
Здравствуйте. Недавно начал изучать c++. Написал простую программу для подсчета калорий. Она...

Метод Ньютона (касательных), программа выдает неправильный результат
Здравствуйте. Проблема в том, что с моей функцией программа выдает неверный результат(хотя если...

Генерация массива случайных чисел код выдаёт неправильный результат
Вот код : #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdlib&gt;...

Неправильный результат
где тут ошибка #include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;iomanip.h&gt; ...

Неправильный результат
1)В результате выдаёт -1.#J. Как это исправить? 2)Подскажите пожалуйста как задавать число пи, мне...

Неправильный результат сортировки
Ранее была написана эта же программа, но с другой сортировкой, все работало. Потом я изменил...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru