Чтение и вывод данных с файла (решение квадратного уравнения) - C (СИ)
Формулировка задачи:
уважаемые программисты помогите найти ошибку...
прога должна считывать данные из файла...
#include <stdio.h> #include <cmath> #include <locale.h> int main() { setlocale(LC_ALL,"Russian"); double a, b, c, x1, x2; FILE *f; f = fopen( "date.txt", "rt" ); if ( f == NULL ) { printf ("данные не считаны\n"); return -1; } int retScan = fscanf ("%lf%lf%lf", &a, &b, &c); /ошибка здесь if( retScan != 3 ) { printf ("ошибка при чтении данных\n"); return -2; } if (a==0) { printf ("Ошибка! а=0! \n"); return -3; } if ((b*b-4*a*c)<0) { printf ("Ошибка! Дискриминант меньше 0!\n"); return -4; } printf ("%lf\n", (-b+sqrt(b*b-4*a*c))/(2*a)); printf ("%lf\n", (-b-sqrt(b*b-4*a*c))/(2*a)); return 0; }
Решение задачи: «Чтение и вывод данных с файла (решение квадратного уравнения)»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <locale.h> int main(void) { double a, b, c, x1, x2; int retScan; FILE *f; setlocale(LC_ALL,"Russian"); f = fopen( "date.txt", "rt" ); if ( f == NULL ) { printf ("данные не считаны\n"); return -1; } retScan = fscanf (f, "%lf %lf %lf", &a, &b, &c); fclose(f); if( retScan != 3 ) { printf ("ошибка при чтении данных\n"); return -2; } if (a==0) { printf ("Ошибка! а=0! \n"); return -3; } if ((b*b-4*a*c)<0) { printf ("Ошибка! Дискриминант меньше 0!\n"); return -4; } printf ("%lf\n", (-b+sqrt(b*b-4*a*c))/(2*a)); printf ("%lf\n", (-b-sqrt(b*b-4*a*c))/(2*a)); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяются переменные a, b, c, x1, x2 типа double и переменная retScan типа int
- Устанавливается русскоязычная локаль с помощью функции setlocale
- Открывается файл
date.txt
для чтения с помощью функции fopen. Если файл не может быть открыт, выводится сообщение об ошибке и возвращается -1 - С помощью функции fscanf считываются значения переменных a, b, c из файла. Если что-то пошло не так, выводится сообщение об ошибке и возвращается -2
- Проверяется, равно ли значение переменной a нулю. Если это так, выводится сообщение об ошибке и возвращается -3
- Вычисляется дискриминант (значение под корнем) и проверяется его значение. Если оно отрицательное, выводится сообщение об ошибке и возвращается -4
- Вычисляются значения x1 и x2 с помощью формулы, которая использует значения переменных a, b и c
- Выводятся значения x1 и x2 на экран с помощью функции printf
- Завершается выполнение программы с возвратом значения 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д