Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Помогите в программировании. Неизвестная ошибка на языке c++

Профи (752), закрыт 6 лет назад
подскажите пожалуйста, почему в программе выделяет ошибкой первый корень, какую бы функцию с корнем я не вводила. пишу на вижуал студио 2010.

часть текста программы где вылазят ошибки:

void CРешениебинарногоуравненияDlg::OnBnClickedSolve()
{
#include "stdafx.h"
#include <iostream>
#include <_dbdao.h>
#include <stdio.h>
#include <math.h>
//библиотек понаподключала блин =(
using namespace std;
char S[80];
FILE *f;
double a, b, c, d, x1, x2, y1, y2, y3, y4;
#define pi 3.14159
UpdateData(TRUE);
a=m_editA;
b=m_editB;
c=m_editC;
d=b*b-4*a*c;
if (m_kvadrat.GetCheck())
if (d<0)
sprintf(S,"Корней нет, т.к. дискриминант отрицательный");
else
{
//проблема в подчеркивании первого корня
x1=(sqrt(d)-b)/(2*a);
x2=(-b-sqrt(d))/2/a;
sprintf(S,"x1=%g\tx2=%g",x1,x2);
}
else
{
if (d<0)
sprintf(S,"Корней нет, т.к. дискриминант отрицательный");
else
{
//та же проблема
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if ((x1<0)&&(x2<0))
sprintf(S,"Корней нет");
else
if ((x1>=0)&&(x2>=0))
{
y1=sqrt(x1);
y2=-y1;
y3=sqrt(x2);
y4=-y3;
sprintf(S,"Четыре корня:\ny1=%f\ty2=%f\ny3=%f\ty4=%f",y1,y2,y3,y4);
}
else
if (x1>=0)
{
y1=sqrt(x1);
y2=-y1;
sprintf(S,"Два корня:\ny1=%f\ty2=%f",y1,y2);
}
else
{
y1=sqrt(x2);
y2=-y1;
sprintf(S,"Два корня:\ny1=%f\ty2=%f",y1,y2);
}
}
}
if (m_message)
{
f=fopen("Result.txt","w");
fprintf(f,S);
fclose(f);
}
else
{
m_result=S;
UpdateData(FALSE);
}
}

ошибка происходит при написании программы для кнопки решить((

фото программы:

Лучший ответ
на ноль делим
Источник: с++
Остальные ответы
Похожие вопросы
Также спрашивают