Здравствуйте roman_fadeyev, Вы писали:
RF>Здравствуйте --, Вы писали:
-->>А в конце книги была подсказка. Честно сказать я не понял к чему она.
-->>Написано- Здесь следует объявить возвращаемый тип как long и включить оператор return, который бы возвращал величину типа long.
-->>В общем такие навороты. Заранее спасибо!
-->>
RF>Честно, сказать, я тоже. Тем более, что я читаю ее, оторванной от контекста. Но тем не менее, могу предположить, что речь идет о возвращаемом количестве обработанных символов, но в таком случае, Вам лучше вынести код в отдельную процедуру, так как главная процедура обычно возвращает коды завершения прогаммы (типа 0, 1, -1 ), хотя это и не закон.
RF>Далее, строка
RF>scanf("%c",as);
RF>неправильная. Таким образом Вы вычитаете только 1 символ вместо строки. Если уж Вы затеяли чтение по одному символу, необходимо организовать цикл типа
RF>RF>char c;
RF>do
RF> scanf("%c",&c);
RF>while (c!=10); // 10- перевод строки
RF>
RF>В этом случае в переменной с будет на каждой итерации будет появляться новое значение из входного потока.
RF>Далее организовываете строку, счетчик, наращиваете его на каждой итерации и передаете scanf смещенную строку. Примерно так
RF>RF>char szLine[255];
RF>char * szLineCur=szLine;
RF>do
RF> scanf("%c",szLineCur);
RF>while (*szLineCur++!=10);
RF>*szLineCur=0;
RF>
ДА Ваша программа оказалась рабочая действительно, я ее доделал следующим образом.
#include <stdio.h>
int main(){ int i=10;
char szLine[255];
char * szLineCur=szLine;
do
scanf("%c",szLineCur);
while (*szLineCur++!=10);
*szLineCur=0;
while(i-->=0){
printf("%c",szLine[i]);
}
}
RF>В таком варианте вы получете указатель на последний символ в строке. Теперь начинайте его декрементировать в цикле и печатайте себе по одному сиволу наздоровье. Условие в цикле: пока szLineCur!=szLine, а печатаете *(szLineCur-1)
RF>За синтаксическую правильность кода не ручаюсь, не проверял, но, по идее, должно компилироватья и работать