В корзине лежит
a красных и
b синих шаров. Из корзины наугад вынимают n шаров. Требовалось написать программу, которая определяет количество вариантов такого опыта (вариантом считаем пару чисел: количество вынутых красных и синих шаров). Программист торопился и написал программу неправильно:
Паскаль |
Си |
var n,a,b:integer;
begin
readln(n, a, b);
if a + b < n then writeln(0)
else
if a < b then
if a < n then writeln(a+1)
else
if b < n then writeln(b+1)
else writeln(n+1);
end.
|
#include<stdio.h>
main()
{
int n,a,b;
scanf("%d%d%d",&n,&a,&b);
if (a + b < n) printf("0\n");
else
if (a < b)
if (a < n) printf("%d\n",a+1);
else
if (b < n) printf("%d\n",b+1);
else printf("%d\n",n+1);
}
|
Последовательно выполните следующее:
1. Определите, что выведет программа при n = 5, a = 3, b = 6 (выполните задание устно).
2. Укажите значения n, a, b, при которых программа выдаёт неправильный ответ (выполните задание устно).
3. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы.
Доработанную программу прикрепите к ответу.