Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство 1+1/2+1/3+...+1/К >=A. Для решения этой задачи ученик написал такую программу:
Паскаль |
Си |
var a, s: real;
k: integer;
begin
read(a);
k := 1;
s := 1;
while s<=a do begin
k := k + 1;
s := 1.0/k;
end;
write(k);
end.
|
#include<stdio.h>
main()
{
float a, s=1;
int k=1;
scanf("%f",&a);
while(s<=a)
{
k = k + 1;
s = 1.0 / k;
}
printf("%d",k);
}
|
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 0.4.
2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.