При ошибки, вместо " sqrt:Domain error " вывести что-то другое - C (СИ)
Формулировка задачи:
Добрый вечер!
Подскажите пожалуйста, как избежать ошибки " sqrtomain error ".
Например, в случае возникновения такой ошибки, что бы программа выводила сообщение, что нету корня из √-n.
#pragma hdrstop #pragma argsused #include <tchar.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> double romb(double a, double d1); int _tmain(int argc, _TCHAR* argv[]) { int rep = 1; // переменная для повторения int rezultats = 1; double a, d1, s = 1; // сторона, диагональ 1, площадь = 1 double d2; // 2-я диагональ do { system("cls"); // Очистка экрана. printf("\n1 Side: "); scanf("%lf", &a); printf("Diagonal: "); scanf("%lf", &d1); romb(a, d1); // Вызов функции для нахождения площади ромба printf("\nRepeat? =>1(yes)/0(no)"); printf("\n"); scanf("%i", &rep); printf("\n"); } while (rep != 0); } double romb(double a, double d1) // Ф-я находит площадь ромба. { double d2; double s; d2 = 2 * sqrt(pow(a,2)-pow(d1/2,2)); // Находим 2-ю диагональ - d2 printf("\nDiagonal d2 =: %.02lf", d2); s = ( d1 * d2 ) / 2; // Находим площадь ромба //printf("\nArea of rhombus: %.02lf",s); return printf("\nArea of rhombus: %.02lf",s); // Возвращаем результат в main(); }
Решение задачи: «При ошибки, вместо " sqrt:Domain error " вывести что-то другое»
textual
Листинг программы
if (arg<0) {printf ("Error, arg is negative"); exit(1);} else {... sqrt(arg).....}
Объяснение кода листинга программы
- Проверка входного аргумента на отрицательность.
- Если аргумент отрицательный, то выводится сообщение об ошибке и программа завершается.
- Заголовок
else
указывает на то, что после проверки аргумента следует какой-то код. - Код внутри блока
else
выполняет вычисление квадратного корня с использованием функции sqrt. - Результат вычисления сохраняется в переменной
sqrt_arg
. - Код после вычисления квадратного корня может быть не указан в предоставленном фрагменте.
- В случае возникновения ошибки во время вычисления квадратного корня, вместо сообщения
sqrt:Domain error
будет выведено другое сообщение об ошибке. - Сообщение об ошибке может быть задано в виде строки в переменной
error_message
. - Вывод сообщения об ошибке осуществляется с помощью функции printf.
- Номер выхода из программы указывается в функции exit.
- Значение 1, переданное в функцию exit, указывает на серьезную ошибку, что приводит к прекращению работы программы.
- Предоставленный код не содержит определения переменной
arg
, которая используется в условии проверки. - Предоставленный код не содержит определения переменной
sqrt_arg
, которая используется для сохранения результата вычисления квадратного корня. - Предоставленный код не содержит определения переменной
error_message
, которая используется для хранения сообщения об ошибке. - В предоставленном коде не указаны другие возможные проверки или действия, которые могут быть выполнены при ошибке.
- Код может быть более сложным и содержать дополнительные проверки или действия, которые не указаны в предоставленном фрагменте.
- Отсутствие определения переменной
arg
может быть связано с тем, что она передается в функцию из другого фрагмента кода. - Отсутствие определения переменной
sqrt_arg
может быть связано с тем, что результат вычисления квадратного корня сохраняется в другой переменной или не сохраняется вовсе. - Отсутствие определения переменной
error_message
может быть связано с тем, что сообщение об ошибке задается непосредственно в вызове функции printf. - Предоставленный код может быть частью более крупной программы, и его можно использовать в сочетании с другими фрагментами кода для решения задачи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д