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

Ошибка при вычислении выражения

25.09.2016, 17:21. Показов 1300. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Написал небольшую программу для вычисления мощности. Вроде все правильно. Код скомпилировался без ошибок. Но беда в том, что при любых введенных данных, функция nN всегда возвращает 6. Не могу понять в чем ошибка. Прошу подсказок от опытных кодеров. Заранее благодарен.

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
//
// Программа для вычисления мощности:
// N = 2 * pi * M * n/60
//
#include <stdio.h>
#include <iostream>
int main(int nNumberofArgs, char* pszArgs[])
{
    //Введите крутящий момент
    int nM;
    std::cout << "Введите крутящий момент Н/м:";
    std::cin >> nM;
    
    //Введите обороты в минуту 
    int nn;
    std::cout << "Введите обороты в минуту:";
    std::cin >> nn;
        
        //Вычисление мощности:
        float nN;
        nN = 2 * 3,14 * nM * nn/60;
    
     
    //вывод результатов
     std::cout << "Мощность в Вт: ";
     std::cout << nN;
     std::cin.get();
     std::cin.get();
     return 0;
     
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2016, 17:21
Ответы с готовыми решениями:

Ошибка при вычислении выражения
float a, b, c, x, res; printf(&quot;Input x - &quot;); scanf_s(&quot;%f&quot;, &amp;x); b = x*x*x; if ((x &gt; 0...

Ошибка при вычислении выражения
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { float xn, xl,...

Ошибка "domain error" при вычислении выражения
Всем привет ) вот код x=StrToFloat(Edit1-&gt;Text); y=StrToFloat(Edit2-&gt;Text);...

Ошибка в вычислении выражения
Калькулятор на базе обратной польской нотации (RPN) Вычисляет длинные выражения со скобками, но...

5
10 / 10 / 5
Регистрация: 28.09.2015
Сообщений: 139
25.09.2016, 17:27 2
Лучший ответ Сообщение было отмечено GokYak как решение

Решение

GokYak,
C++
1
nN = 2 * 3,14 * nM * nn/60;
Присмотритесь, дробная часть отделяется точкой.
1
1 / 1 / 0
Регистрация: 21.09.2016
Сообщений: 58
25.09.2016, 17:34  [ТС] 3
Спасибо Glitch за подсказку, все заработало.
0
Модератор
Эксперт С++
13483 / 10740 / 6402
Регистрация: 18.12.2011
Сообщений: 28,651
25.09.2016, 17:36 4
И не используйте int. ВСЕ переменные в этой задаче нужно сделать double.
1. Они не обязаны быть целыми, например, что мешает быть nn равной 3,5 об/мин.
2. Можете нарваться на целочисленное деление, например, написав формулу так:
C++
1
 nN = nn/60*2 * 3.14 * nM;
И константы в таких выражениях тоже используйте действительные:
C++
1
nN = 2.0 * M_PI * nM * nn/60.0;
1
Диссидент
Эксперт C
27705 / 17321 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
25.09.2016, 17:38 5
Да, это некоторое ехидство сишного синтаксиса. Запятая разделяет операторы. На то, что второй оператор в общем-то бессмысленен, транслятор внимания не обратил.
1
1 / 1 / 0
Регистрация: 21.09.2016
Сообщений: 58
27.09.2016, 19:41  [ТС] 6
Всем спасибо за объяснения и подсказки. Внес исправления в код.
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
//
// Программа для вычисления мощности:
// N = 2 * pi * M * n/60
//
#include <stdio.h>
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
int main(int nNumberofArgs, char* pszArgs[])
{
    //Введите крутящий момент
    double nM;
    std::cout << "Введите крутящий момент Н/м:";
    std::cin >> nM;
    
    //Введите обороты в минуту 
    double nn;
    std::cout << "Введите обороты в минуту:";
    std::cin >> nn;
        
        //Вычисление мощности:
        float nN;
        nN = 2 * M_PI * nM * nn/60;
        
        //Преобразование N(Вт) в HP(л.с.)
        float fHP;
        fHP = nN/735.5;
    
     
    //вывод результатов
     std::cout << "Мощность в л.с.: ";
     std::cout << fHP;
     std::cin.get();
     std::cin.get();
     return 0;
     
}
0
27.09.2016, 19:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2016, 19:41
Помогаю со студенческими работами здесь

Ошибка в вычислении выражения
y=sqrt(fabs(5!-35*sqrt(fabs(4!-34*sqrt(fabs(3!-33*sqrt(fabs(2!-32*sqrt(fabs(1-3*x)))))))))) Внизу...

Ошибка в вычислении выражения
Помогите, пожалуйста Выдает ошибку (error: no matching function for call to ‘pow(double)’)...

Переполнение стека при вычислении выражения
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; double eps=0.001; void main()...

Найти и исправить ошибку при вычислении выражения
проверьте код, не могу найти и исправить ошибку #include&lt;iostream&gt; #include&lt;math.h&gt; using...

При вычислении выражения выдается неверный результат
Добрый вечер! Пытался разобраться, но, увы, не получилось. У меня есть пару вопросов: 1) Что...

Ошибка при вычислении функций
Условие во вложении. П.5.18.Правил! Запрещено размещать задания и решения в виде картинок и...


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

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

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