Перевести код из Паскаля в Си - C (СИ) (70606)
Формулировка задачи:
как перевести код паскаль в Си?
program While16;
var
P, S, D:Real;
K :Integer;
begin
Write('Введите процент: ');
Readln(P);
K:=1;
D:=10;
S:=10;
while S<=200 do
begin
inc(K,1);
D:=D+D*P/100;
S:=S+D;
end;
Writeln(K,' ',S);
end.Решение задачи: «Перевести код из Паскаля в Си»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
const float EPS = 0.00001;
int main(void)
{
float P, S = 10.0, D = 10.0;
int K = 1;
printf("Введите процент: ");
scanf("%f", &P);
P /= 100.0;
while ((fabs(S - 200) < EPS) || (S < 200))
{
++K;
D *= (1 + P);
S += D;
}
printf("%d %f", K, S);
getchar();
return EXIT_SUCCESS;
}
Объяснение кода листинга программы
- Включение необходимых библиотек
- Объявление константы EPS, которая представляет собой допустимую погрешность при сравнении чисел
- Ввод числа P с клавиатуры и сохранение его в переменной типа float
- Приведение числа P к типу double для выполнения операций с плавающей точкой
- Объявление переменных S и D типа float со значениями по умолчанию 10.0
- Объявление переменной K типа int, которая будет использоваться для контроля числа итераций
- Организация цикла while, который будет выполняться до тех пор, пока разница между S и 200 меньше EPS или S меньше 200
- Внутри цикла увеличение K на 1
- Умножение D на (1 + P) внутри цикла
- Прибавление D к S внутри цикла
- Вывод значения K и S после завершения цикла
- Ожидание нажатия клавиши для завершения программы
- Возврат значения EXIT_SUCCESS, что означает успешное завершение программы