Re[2]: Задача из книги. Начинающий вопрос?
От: Аноним  
Дата: 12.01.02 14:53
Оценка:
Здравствуйте 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>За синтаксическую правильность кода не ручаюсь, не проверял, но, по идее, должно компилироватья и работать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.