М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
sofyadeeva
sofyadeeva
07.01.2020 15:09 •  Другие предметы

Дана последовательность: p(n)=1/2;4/4;...;n^2/2^n...
Составить программу c использованием цикла do...while, выводящую на экран номер первого члена последовательности меньшего e, и его значение.
Использовать цикл do...while.
Входной формат: вещественное число
Выходной формат: целое число, вещественное число
Пример: Ввод - 0.1 Вывод - 10 0.0977
Написал:
#include
#include
int main () {
int n=1;
float value, e;
scanf("%f",&e);
do
{
value=n*n/pow(2,n);
n=n+1;

}
while(value>e);
printf("%i %f",n,value);
}
Он выводит 11 0.0977, а не 10 0.0977. Если меняю 1 на 0, то получается вообще другое.

👇
Ответ:
dimaburkovskiy3
dimaburkovskiy3
07.01.2020
Программа,
которую ты написал, не выводит корректный результат, потому что у тебя пропущено имя библиотеки. Для использования функции pow() нужно подключить библиотеку math.h. Попробуй заменить строку

#include
#include


на

#include
#include

Также, для того чтобы получить результат, близкий к ожидаемому (10), нужно изменить начальное значение n на 0. Вот исправленный исходный код:

#include
#include

int main() {
int n = 0;
float value, e;
scanf("%f", &e);

do {
value = pow(n, 2) / pow(2, n);
n = n + 1;
} while(value > e);

printf("%i %f", n-1, value);

return 0;
}

Теперь программа должна правильно выводить результаты для введенного значения e. Обрати внимание, что значение n выводится с оффсетом 1, поэтому при выводе нужно использовать значение n-1.
4,5(65 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Другие предметы
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ