есть код программы, как его можно перевести в Си?
Руками... Показывай код, если он большой - то присоединяй в аттаче...
вот, долго искал сканер
вот задание
Пусть входной поток литер содержит по крайней мере одну цифру. Считая первую из них началом записи числа (целого или вещественного с фиксированной точкой), выполнить преобразование этой записи в число, присвоить его значение переменной и вывести результат.
Эскизы прикрепленных изображений
вот набрал вручную, может так будет легче
program Convert;
const
nul = '0';
nine = '9';
point = '.';
n = 10;
var
result: real;
scale: real;
c: char;
begin
result := 0;
writeln('Введите последовательность символов:');
repeat
read©
until (nul <= c) and (c <= nine);
write (nul <= c) and (c <= nine) do
begin
result := n * result + ord© - ord(nul);
read ©
end;
if c = point
then
begin
scale := 1;
read ©;
write (nul <= c) and (c <= nine) do
begin
scale := scale * 10;
read ©;
result := result + (ord© - ord(nul) ) / scale;
end
end;
writeln ('Результат = ' , result );
readln
end.
Дело все в том, что эта программа даже на Паскале неправильно работает... Перевести ее, конечно, можно, только зачем же это делать - лучше уж исправить сначала...
Вот лог работы программы:
volvo скажи пожалуйста каким должен быть результат? или я чего то не понял
Должно быть 1.234500000000000E+002
хммм, странно - вроде всё правильно, почему так выходит?
volvo там не в ord`е дело случайно?
что-то в этой строке не то....
write (nul <= c) and (c <= nine) do
не, там в этой строке и ещё в одном месте я перепутал - вместо write надо while писать, но всё равно неполучается
так лучше?
program Convert;
const
nul = '0';
nine = '9';
point = '.';
n = 10;
var
result: real;
scale: real;
c: char;
begin
result := 0;
writeln('vvedite posledovatelnost');
repeat
read( с )
until (nul <= c) and (c <= nine);
while (nul <= c) and (c <= nine) do
begin
result := n * result + ord( с ) - ord(nul);
read( с );
if c = point then
begin
scale := 1;
read( с );
while (nul <= c) and (c <= nine) do
begin
scale := scale * 10;
result := result + (ord( с ) - ord(nul) ) / scale;
read( с );
end
end;
end;
writeln ('result = ' , result );
readln
end.
да мисс_граффити спасибо , теперь помогите его перевести в код Си пожалуйста
чистый си? или с++?
чистый си
ребят, завтра последний день сдачи, помогите перевести этот код, сделайте подарок на Новый год
могу на с++... только тебе от этого вряд ли легче будет...