Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 13.10.2019, 15:11   #1
ZVEZDOKRIK
Новичок
Джуниор
 
Регистрация: 13.10.2019
Сообщений: 2
По умолчанию перевод из Pascal в Си

Здравствуйте, нужно решить данную задачу:
Ввести действительное число а. Найти среди чисел
1, 1 + 1/2, 1 + 1/2 + 1/3, …
первое, большее а. Вывести это число на экран.

Написал код на Си, но он работает неправильно

Код:
#include <stdio.h>
#include <stdlib.h>
#include<math.h>

int main()
{
  int n = 1;
double b = 1.0;
double a;
scanf("%lf",a);
while (b<a)
{
n++;
b=b+(1/n);

}
  printf("%lf", b);

    return 0;
}



написал такой же алгоритм на Pascal и все работает

Код:
var
n:integer;
a,b:real;
begin
readln(a);
b:=1;

while (b<a) do
begin
n:=n+1;
b:=b+(1/n);
end;
write(b);
end.

Подскажите, пожалуйста, где я ошибся?
______________________
Форматируйте код и используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Вадим Мошев; 13.10.2019 в 16:02.
ZVEZDOKRIK вне форума Ответить с цитированием
Старый 13.10.2019, 16:07   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,510
По умолчанию

Код:
scanf("%lf",&a);
digitalis вне форума Ответить с цитированием
Старый 13.10.2019, 19:17   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

сделайте n double

Код:
  double n = 1.0;
double b = 1.0;
а ещё непонятно, почему в Паскале n в начале не иницилизируется единицей.
Тогда и в коде на Си сделайте
Код:
double  n = 0.0;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод с Pascal в С++ Vaas Помощь студентам 0 03.07.2014 16:27
Перевод из Pascal в С Foxtrot_1 Помощь студентам 7 20.06.2009 18:00
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS