Дан ряд, который изображает арифметический пример, вывести результат - C (СИ)
Формулировка задачи:
У меня чего то не получаеться перевести с паскаля на си задачи по строкам!
начинаю переводить и выскакивает почти на каждом шагу ошибки...
var
a: array[1..100] of char;
p, t, c: integer;
i, k: byte;
s: string;
begin
write('Введите строку: '); readln(s);
p := 1; k := 0;
for i := 1 to length(s) do
if s[i] <> '*' then
begin
k := k + 1;
a[k] := s[i];
end;
for i := 1 to k do
begin
val(a[i], t, c);
p := p * t;
end;
writeln('Произведение: ', p);
end.Решение задачи: «Дан ряд, который изображает арифметический пример, вывести результат»
textual
Листинг программы
#include <cstdio>
int main(){
char s[]="2*4*8*3*5";
int res=1;
for (int i=0; s[i];i+=2)
res*=s[i]-48;
printf("Result = %d\n",res);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлена переменная
s[]со значением2*4*8*3*5, представляющая собой строку, содержащую арифметический пример. - Объявлена переменная
resсо значением 1, которая будет использоваться для хранения результата вычисления примера. - Запускается цикл
for, который начинается с индекса 0 и продолжается до тех пор, покаs[i]не станет пустой строкой (т.е. не будет равен нулю). - Внутри цикла значение
resумножается на значениеs[i], которое вычитается из 48 (для получения числового значения символа). - После завершения цикла выводится значение переменной
res, которое представляет собой результат вычисления арифметического примера. - Код возвращает 0, что означает успешное выполнение программы.