Помогите С Переводом Из Delphe На С++

  • Автор темы stepansiy1
  • Дата начала
S

stepansiy1

Гость
#1
Код:
var sn,s:string;
l,k,kod:integer;
v,p:real;
begin
writeln('Введите строку');
readln(s);
l:=length(s);
p:=1; k:=1;
repeat
sn:='';
while (s[k]>='0')and(s[k]<='9')and(k<=l) do
begin
sn:=sn+s[k];
k:=k+1;
end;
if sn<>'' then
begin
val(sn,v,kod);
p:=p*v;
end;
k:=k+1;
until k>l;
writeln(' p=',p);
end.
помогите, ато у меня с переводом не очень хорошо, а условие звучит так "Ввести строку и вычеслить произведение входящих в эту строку чисел
 

Whatka

Well-Known Member
09.10.2011
428
4
24
Минск
#2
вот функция подсчёта суммы чисел входящих в строку(в строке числа через запятую)
думаю остальное ты сам вполне сможешь дописать
C++:
int sum_str(char *s)
{
char *u;
int sum(0),elem(0),len(0);
u=strtok(s,",\0");
while(u!=0)
{
elem=0;
len=strlen(u);
if(u[0]!='-')
{
for(int i(0);i<len;i++)
elem+=(u[i]-48)*pow(10.,len-i-1);
}
else
{
for(int i(1);i<len;i++)
elem+=(u[i]-48)*pow(10.,len-i-1);
elem*=-1;
}
sum+=elem;
u=strtok(NULL,",\0");
}
return sum;
}