Олимпиадный тренинг

Задача . 1037


Задача

Темы:

Требовалось написать программу, которая решает уравнение «a|x|=b» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно:

#include <stdio.h>

#include <math.h>
main()
{
      double a,b,x;
      scanf("%f%f%f",&a,&b,&x);
      if (a==0)
      if (b==0)
      printf(''любое число'');
      else printf(''нет решений'');
      else
      if (b==0)
      printf("x=0");
      else
      printf("x=%f или x=%f",b/a,-b/a);
}


Последовательно выполните три задания:
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).


time 500 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя