0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 6
1

Непонятный результат арифметических операций

16.02.2019, 09:44. Показов 737. Ответов 11

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 using namespace std;
 int main() 
 { 
    char a,c,D,s,f1,f2;
    cin >> s;
    cin >> a;
    cin >> c;
    D=s*s-4*a*c;
    f1=(-s+D)/2;
    f2=(-s-D)/2;
    cout << f1;
    cout << f2;
    cin.get();
    return 0;
 }
Скажите, пожалуйста, почему эта программа выводит не то, что надо? Спксибо заранее)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2019, 09:44
Ответы с готовыми решениями:

Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100
Вычисления проводятся слева-направо, ни одна операция не имеет приоритета. Добавлено через 2...

Расставить знаки арифметических операций так, чтобы сошелся результат
Разработать программу, отыскивающую такую расстановку знаков арифметических операций +, -, *, /...

Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат
Собственно, вот задача: Вводится строка не более чем из 6 цифр и некоторое целое число R....

Перегрузка арифметических операций
Помогите пожалуйста. Создать класс типа Float. Перегрузите для него арифметические операции,...

11
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
16.02.2019, 09:50 2
Цитата Сообщение от Аманта Посмотреть сообщение
почему эта программа выводит не то, что надо
Вероятно, потому что Вы используете тип символов char, который при таких операция преобразуется в свой код ascii. В итоге Вы получаете неизвестный символ в не границ этой таблицы. Измените свой тип на int или double и Вы получите желанный результат.
1
317 / 213 / 101
Регистрация: 12.02.2019
Сообщений: 912
16.02.2019, 09:55 3
ну про char уже сказали, хотелось наверно этого:
C++
1
f1=(-s+sqrt(D))/(2*a);
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 6
16.02.2019, 13:19  [ТС] 4
Да-да, именно! Спасибо большое за помощь!
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 6
16.02.2019, 13:37  [ТС] 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
   int a,b,c,x1,x2,D;
   D=b*b-4*a*c; 
   cin >> a;
   cin >> b;
   cin >> c;
   x1=(-b+sqrt(D))/(2*a);
   x2=(-b-sqrt(D))/(2*a);
   cout << "первый корень=" << x1;
   cout << "второй корень=" << x2;
   cin.get();
   return 0;
}
Не могу разобраться, в чём дело. Пишет, что suggested alternative qsort. Подскажите, в чём дело?
0
Don't worry, be happy
17769 / 10534 / 2034
Регистрация: 27.09.2012
Сообщений: 26,505
Записей в блоге: 1
16.02.2019, 13:41 6
Цитата Сообщение от Аманта Посмотреть сообщение
Пишет
Кто пишет? Где пишет? Когда пишет?
0
317 / 213 / 101
Регистрация: 12.02.2019
Сообщений: 912
16.02.2019, 13:42 7
C++
1
#include <cmath>
2
215 / 162 / 52
Регистрация: 09.12.2017
Сообщений: 520
16.02.2019, 13:48 8
Цитата Сообщение от Аманта Посмотреть сообщение
int a,b,c,x1,x2,D;
D=b*b-4*a*c;
cin >> a;
cin >> b;
cin >> c;
Что Вы в этих строках делаете ?
Вы работаете с неинициализированными переменными. По сути, Вы делаете математические операции на мусором !
Сначала введите переменные и только потом находите D.
C++
1
2
3
4
5
int a,b,c,x1,x2,D;
cin >> a;
cin >> b;
cin >> c;
D=b*b-4*a*c;
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 6
16.02.2019, 14:03  [ТС] 9
Разобралась. Действительно, глупая ошибка. Спасибо. Я просто только учусь.
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
16.02.2019, 14:32 10
Аманта, для переменных используйте тип double
0
39 / 31 / 7
Регистрация: 31.01.2019
Сообщений: 81
16.02.2019, 16:52 11
Цитата Сообщение от Аманта Посмотреть сообщение
Пишет, что suggested alternative qsort. Подскажите, в чём дело?
предлагает использовать альтернативу: qsort
на самом деле достаточно :
Цитата Сообщение от CoderPC Посмотреть сообщение
#include <cmath>
0
Модератор
Эксперт С++
12478 / 10032 / 6035
Регистрация: 18.12.2011
Сообщений: 26,849
16.02.2019, 19:27 12
Похоже, Вы имели ввиду не qsort, а sqrt.
Еще чуть чуть напрягитесь, поменяйте int на double
и ошибка исчезнет, т.к. не предусмотрена перегрузка sqrt для int.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2019, 19:27
Помогаю со студенческими работами здесь

Перегрузка арифметических операций
Для соответствующего класса, перегрузить арифметические операции(+,-,*,/). При перезгузке...

Класс Матрица, перегрузка арифметических операций
Не удаётся реализовать перегрузку операторов сложения, вычитания и т.д. причём не понимаю в чём...

Выполнение простых арифметических операций, находящихся в файле
Добрый день! Такая вот задача: На языке С++ написать программу, которая будет выполнять простые...

Реализация арифметических операций над вещественными числами
Здравствуйте. Помогите пожалуйста реализовать алгоритмы арифметических операций(+ - * /) над...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru