При ошибки, вместо " 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).....}

Объяснение кода листинга программы

  1. Проверка входного аргумента на отрицательность.
  2. Если аргумент отрицательный, то выводится сообщение об ошибке и программа завершается.
  3. Заголовок else указывает на то, что после проверки аргумента следует какой-то код.
  4. Код внутри блока else выполняет вычисление квадратного корня с использованием функции sqrt.
  5. Результат вычисления сохраняется в переменной sqrt_arg.
  6. Код после вычисления квадратного корня может быть не указан в предоставленном фрагменте.
  7. В случае возникновения ошибки во время вычисления квадратного корня, вместо сообщения sqrt:Domain error будет выведено другое сообщение об ошибке.
  8. Сообщение об ошибке может быть задано в виде строки в переменной error_message.
  9. Вывод сообщения об ошибке осуществляется с помощью функции printf.
  10. Номер выхода из программы указывается в функции exit.
  11. Значение 1, переданное в функцию exit, указывает на серьезную ошибку, что приводит к прекращению работы программы.
  12. Предоставленный код не содержит определения переменной arg, которая используется в условии проверки.
  13. Предоставленный код не содержит определения переменной sqrt_arg, которая используется для сохранения результата вычисления квадратного корня.
  14. Предоставленный код не содержит определения переменной error_message, которая используется для хранения сообщения об ошибке.
  15. В предоставленном коде не указаны другие возможные проверки или действия, которые могут быть выполнены при ошибке.
  16. Код может быть более сложным и содержать дополнительные проверки или действия, которые не указаны в предоставленном фрагменте.
  17. Отсутствие определения переменной arg может быть связано с тем, что она передается в функцию из другого фрагмента кода.
  18. Отсутствие определения переменной sqrt_arg может быть связано с тем, что результат вычисления квадратного корня сохраняется в другой переменной или не сохраняется вовсе.
  19. Отсутствие определения переменной error_message может быть связано с тем, что сообщение об ошибке задается непосредственно в вызове функции printf.
  20. Предоставленный код может быть частью более крупной программы, и его можно использовать в сочетании с другими фрагментами кода для решения задачи.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.333 из 5