Эдуард Каракай
Эдуард Каракай

Программирование в C++. Не могу найти ошибку в коде.

Вот код:
#include
#include "rus8.h"
#include
using namespace std;

int main()
{
rus();
double a, b, c;//a, b, c - коэффиценты уравнения
double x0, x1, x2, x3, x4, x5;// х1, х2 - корни уравнения
double D;//D-дискриминант
FILE *f_in;
FILE *f_out;
int retcode;
f_in = fopen("Input.txt", "r");
if (f_in == NULL)
{
printf("Ошибка открытия файла Input.txt!!!\n");
return 1;
}
retcode = fscanf (f_in, " a=%lg b=%lg c=%lg", &a, &b, &c);
if (retcode !=3)
{
printf ("Ошибка чтения данных из файла Input.txt!!!\n"
"Проверьте корректность данных... \n");
return 2;
}
retcode = fclose(f_in);
if (retcode == EOF)
{
printf ("Ошибка закрытия файла Input.txt!!!\n");
return 3;
}
printf("Вы получии уравнение: %lgx^2%+lgx%+lg=0\n", a, b, c);
f_out = fopen("Output.txt", "w");
if (f_out == NULL)
{
printf("Ошибка открытия файла Output.txt!!!\n");
return 4;
}
if ( a==0 )
{

if (b==0)
{
printf ("Ошибка!! !Неверное математическое выражение: %lg=0\n", c);
}
x0=(-c)/b;//нахождение корня при а=0
retcode = fprintf (f_out, "%lg - единственный корень\n", x0);
if (retcode !=2)
{
printf ("Ошибка записи данных в файл Output.txt!!!\n");
return 5;
return 0;
}
return 0;

}
if (a!=0)
{
D = (b)*(b)-4*a*c;//формула нахождения дискриминанта
if (D < 0)
{
int i;
x1=-b+sqrt(-D)*i;
x2==-b-sqrt(-D)*i;
retcode = fprintf (f_out, "Первый корень%lg\nВторой корень %lg", x1, x2);
if (retcode !=2)
{
printf ("Ошибка записи данных в файл Output.txt!!!\n");
return 6;
return 0;
}
return 0;
}
if (D == 0)
{
x3=(-b)/(2*a);//формула нахождения корня уравнения при D=0
retcode = fprintf (f_out, "Единственный корень - %lg\n", x3);
if (retcode !=2)
{
printf ("Ошибка записи данных в файл Output.txt!!!\n");
}
return 7;
}
if (D > 0)
{
x4=((-b)+sqrt(D))/(2*a);//формулы нахождения корней
x5=((-b)-sqrt(D))/(2*a);//квадратного уравнения
retcode = fprintf (f_out, "Первый корень%lg\nВторой корень %lg", x4, x5);
if (retcode !=2)
{
printf ("Ошибка записи данных в файл Output.txt!!!\n");
return 8;
return 0;
}
}
printf("Уравнение решено. Ответ находится в файле Output.txt\n");
}
Вот что он выводит:
1>d:\projects\pract2\pract2\main.cpp(15) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\mvs08\vc\include\stdio.h(237) : see declaration of 'fopen'
1>d:\projects\pract2\pract2\main.cpp(21) : warning C4996: 'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\mvs08\vc\include\stdio.h(256) : see declaration of 'fscanf'
1>d:\projects\pract2\pract2\main.cpp(35) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\mvs08\vc\include\stdio.h(237) : see declaration of 'fopen'
1>d:\projects\pract2\pract2\main.cpp(66) : warning C4553: '==' : operator has no effect; did you intend '='?
1>d:\projects\pract2\pract2\main.cpp(100) : fatal error C1075: end of file found before the left brace '{' at 'd:\projects\pract2\pract2\main.cpp(7)' was matched
1>Build log was saved at "file://d:\projects\pract2\pract2\Debug\BuildLog.htm"
1>pract2 - 1 error(s), 4 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

ТК
Татьяна Коростелева

Пропустил закрывающуюся скобку. Тут я хзЮ при таком форматировании ее сложно найти.

Еще поставил двойное равно == вместо =
x2==-b-sqrt(-D)*i;

А тут пахнет быдлокодом.
return 8;
return 0;

И вообще то если D < 0, то вещественных корней нет, только комплексные.

ЛП
Лёньчик Пирожков

молодец Павел, читал...

Похожие вопросы
Программирование c++
Помогите найти ошибку в коде c# с массивом
Какая ошибка в коде c++?
помогите найти ошибку в коде C++
Надо исправить ошибки в коде C++
Ошибка в коде C#, не могу найти в чем проблема...
Найдите ошибку в коде Visual C++
C++. Не могу найти ошибку
Dev C++ Ошибка в коде
Не могу найти ошибку в коде (Unreachable code)