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

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

Войти
Регистрация
Восстановить пароль
 
 
ghfh
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 6
#1

Не как не могу найти ошибку уже более часа - C++

09.03.2014, 13:19. Просмотров 463. Ответов 15
Метки нет (Все метки)

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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define _USE_MATH_DEFINES
#define M_PI       3.14159265358979323846
 
int _tmain(int argc, _TCHAR* argv[])
{double A,B,C,a,b,c,S,AC,AB,BC;
printf("\n AB="); scanf("%d",&c);
printf("\n BC="); scanf("%d",&a);
printf("\n AC="); scanf("%d",&b);
AB=c;
BC=a;
AC=b;
c=sqrt(pow(a,2)+pow(b,2)-2*a*b*cos(C));
A=acos((pow(b,2)+pow(c,2)-pow(a,2))/2*b*c);
B=acos((pow(a,2)+pow(c,2)-pow(b,2))/2*a*c);
B=M_PI-(A+C);
C=180-(A+B);
S=1/2*AC*sin(B);
S=1/2*a*b*sin(C);
    return 0;
}


После того как задаю AB, BC и AC программа вылетает. Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 13:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не как не могу найти ошибку уже более часа (C++):

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Как рандомно заполнить вектор? Не могу найти ошибку - C++
Вот код, в консоли выдаёт &quot;Не является внутренней или внешней командой&quot; #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; ...

Вывести данные о фильмах начинающихся после 18 00 и продолжительностью более 1 часа 40 минут - C++
Есть код, только на C# using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace...

Где здесь логическая ошибка? Второй час уже не могу найти - C++
void ReadFromFile( Person*&amp; pers, int&amp; rCount ) { FILE* file = fopen(&quot;kakhochy.pam&quot;, &quot;r&quot;); //Если не может открыть файл if...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Не могу найти ошибку! - C++
Пробую что-то вычудить..... не могу найти ошибку (просто интересно) #include &lt;iostream&gt; using namespace std; ...

15
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
09.03.2014, 13:21 #2
...
0
_include
Студент
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 13:27 #3
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define _USE_MATH_DEFINES
#define M_PI 3.14159265358979323846
 
int _tmain(int argc, _TCHAR* argv[])
{double A,B,C,a,b,c,S,AC,AB,BC;
printf("\n AB="); scanf("%d",&c);
printf("\n BC="); scanf("%d",&a);
printf("\n AC="); scanf("%d",&b);
AB=c;
BC=a;
AC=b;
c=sqrt(pow(a,2)+pow(b,2)-2*a*b*cos(C));
A=acos((pow(b,2)+pow(c,2)-pow(a,2))/2*b*c);
B=acos((pow(a,2)+pow(c,2)-pow(b,2))/2*a*c);
B=M_PI-(A+C);
C=180-(A+B);
S=1/2*AC*sin(B);
S=1/2*a*b*sin(C);
return 0;
}
1) Вы просите целочисленный тип на вводе, когда переменные объявлены вещественным, с удвоенной точностью. scanf("%d",&c);
2)Зачем Вы делаете так:
C++
1
2
3
AB=c;
BC=a;
AC=b;
Вы нигде не используете AB,BC,AC, пардон АС увидел один раз
3) Переопределяете переменную с после ввода: c=sqrt(pow(a,2)+pow(b,2)-2*a*b*cos(C)); Последний косинус вычисляется от непонятно какого С. Если от C=180-(A+B);, то поднимите эту строчку над вычислением.
4) Что бы окно не закрывалось, допишите _getch(); после return;
1
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
09.03.2014, 13:28 #4
Во-первых, это не C++, во-вторых, оформите тегами кода, в-третьих, %d для double не пойдет
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.03.2014, 13:29 #5
у вас студия. осваивайте дебагер. краткая инструкция
ставите курсор на первую строчку с printf.
нажимаете F9. на против этой строки появляется красный кружок, говорящий
о том, что тут установлен брейк поинт. нажимаете F5 для запуска проги.
выполнение останавливается на этом брейк поинте. далее, чтобы программа
выполнела строчку, на которой остановилась - нажимаете F10 (переход на следующую).
наводите мышкой на переменные, студия покажет вам их значения. если все ок - делаете
еще шаг вперед и снова смотрите переменные. если у вас краш - значит или деление на
ноль где-то или в мат функции передается какое-то неправильное значение.

Shift-F5 - для прерывания всего этого дела. Все хот кеи продублированы на
панельке с кнопочками.

Один раз освоите и подобные ошибки будут находится достаточно быстро в будущем.
1
ValeryS
Модератор
6679 / 5088 / 476
Регистрация: 14.02.2011
Сообщений: 17,086
09.03.2014, 13:32 #6
Цитата Сообщение от ghfh Посмотреть сообщение
S=1/2*AC*sin(B);
S=1/2*a*b*sin(C);
рассчитали значение и тут же забыли
да и во всей программе идет расчет, а потом программа закрывается куда результаты то идут?
ни на экран не в файл, зачем нужна программа?
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
09.03.2014, 13:39 #7
%d -> %lf
0
ghfh
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 6
09.03.2014, 13:41  [ТС] #8
Программу я ещё просто не дописал, второй раз этим занимаюсь(1 курс института).
Но даже на этой стадии она должна работать, а она вылетает вот такой ошибкой после того как задам значения.
http://s2.ipicture.ru/uploads/20140309/5SEUSSuH.jpg
0
Croessmah
Эксперт CЭксперт С++
13514 / 7672 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
09.03.2014, 13:42 #9
Цитата Сообщение от ghfh Посмотреть сообщение
(1 курс института).
а английский в школе учили? Да тут и особых знаний не надо - переведите любым переводчиком текст ошибки и всё будет понятно!
0
ghfh
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 6
09.03.2014, 13:47  [ТС] #10
Croessmah, То есть нужно задать значение переменной А?
0
_include
Студент
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 13:56 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ghfh Посмотреть сообщение
Программу я ещё просто не дописал, второй раз этим занимаюсь(1 курс института).
Но даже на этой стадии она должна работать, а она вылетает вот такой ошибкой после того как задам значения.
http://s2.ipicture.ru/uploads/20140309/5SEUSSuH.jpg
Вы не инициализировали переменную А.
Разберитесь пожалуйста с переменными, перепишите код еще раз.

Добавлено через 8 минут
ghfh, исходя из написанного Вами, я подправил код:
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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
#define _USE_MATH_DEFINES
#define M_PI 3.14159265358979323846
 
int _tmain(int argc, _TCHAR* argv[])
{
    double A,B,C,S1,S2,AC,AB,BC;
    printf("\n AB="); scanf("%f",&AB);
    printf("\n BC="); scanf("%f",&BC);
    printf("\n AC="); scanf("%f",&AC);
    C=sqrt(pow(BC,2)+pow(AC,2)-2*BC*AC*cos(AB));
    A=acos((pow(AC,2)+pow(AB,2)-pow(BC,2))/2*AC*AB);
    B=acos((pow(BC,2)+pow(AB,2)-pow(AC,2))/2*BC*AB);
    B=M_PI-(A+C);
    C=180-(A+B);
    S1=1/2*AC*sin(B);
    S2=1/2*BC*AC*sin(C);
    _getch();
    return 0;
}
1
ghfh
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 6
09.03.2014, 13:59  [ТС] #12
_include, Спасибо большое, но ошибка та же самая. Может дело не в коде, а в компиляторе или оборудование?
http://s2.ipicture.ru/uploads/20140309/cbyIEFET.jpg
0
_include
Студент
52 / 52 / 12
Регистрация: 17.09.2012
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
09.03.2014, 14:02 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Не пишите в пути к файлу, в названии проекта русские буквы и прочие символы типа #№?$%. Именуйте проект по английски, без пробелов. И возможно, предыдущий запуск был не удачен, и программа висит в памяти. Закройте проект, перезайдите в студию.
А вообще, пересоздайте проект, дайте ему имя triangleOne например и продолжите работу с кодом.
1
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.03.2014, 14:04 #14
не удается открыть - это когда студия пытается перезаписать вновь собранный бинарик, но не может.
старый бинарик запущен и система залочила файл для модификации. старый процесс нужно убить.
0
ghfh
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 6
09.03.2014, 14:14  [ТС] #15
_include, Вот теперь вроде всё работает, не знаю правильно или нет, но уже работает, спасибо большое.

Добавлено через 2 минуты
1>c:\users\neko\documents\visual studio 2010\projects\triangleone\triangleone\triangleone.cpp(17): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304): см. объявление "scanf"/

А это не смертельная ошибка?
0
09.03.2014, 14:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2014, 14:14
Привет! Вот еще темы с ответами:

Не могу найти ошибку - C++
Всем здравствуйте. Я являюсь болельщиком Ф1, и решил написать простенькую программку, которая бы суммировала очки за гонку и записывала бы...

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

не могу найти ошибку! - C++
почему в typePlane вместо значения, которое вводит пользователь, выводит какое-то большое значение из цифр и букв? #include&lt;iostream&gt; ...

Не могу найти ошибку - C++
{ char str={0}; char str2={0}; int k=0; int n=8; strcpy(str,this-&gt;Edit1-&gt;Text.c_str()); for(int i=0; str!='\0';i++) { ...


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

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

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