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

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

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

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Написал небольшую программу для вычисления мощности. Вроде все правильно. Код скомпилировался без ошибок. Но беда в том, что при любых введенных данных, функция 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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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 &amp;&amp; x &lt; 1)){ res = sqrt((3 * b) +...

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

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

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

Решение

GokYak,
C++
1
nN = 2 * 3,14 * nM * nn/60;
Присмотритесь, дробная часть отделяется точкой.
1
1 / 1 / 0
Регистрация: 21.09.2016
Сообщений: 58
25.09.2016, 17:34  [ТС]
Спасибо Glitch за подсказку, все заработало.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
25.09.2016, 17:36
И не используйте 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
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
25.09.2016, 17:38
Да, это некоторое ехидство сишного синтаксиса. Запятая разделяет операторы. На то, что второй оператор в общем-то бессмысленен, транслятор внимания не обратил.
1
1 / 1 / 0
Регистрация: 21.09.2016
Сообщений: 58
27.09.2016, 19:41  [ТС]
Всем спасибо за объяснения и подсказки. Внес исправления в код.
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2016, 19:41
Помогаю со студенческими работами здесь

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

Ошибка в вычислении выражения
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)’) y=pow(x+(pow(x+sin(x), 1/2), 1/3)); ...

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru