Показать сообщение отдельно
Старый 04.07.2003, 00:06     # 4
Machine
Guest
 
Сообщения: n/a

Цитата:
void set_replace(unsigned long *n, int j, int i)
Интерфейс описан некорректно. Нужно передать в функцию размер массива для проверки.

А по реализации alexey_ma все написал.

Цитата:
кто нить объясните что эта ф-ция делает и что она возвращает что будет если убрать (!*р2) break; и что она после этого возвращать начнет, ну и конечно не плохо было бы ее заменить на рекурсионную ф-цию.
Нда, плохо, что здесь форматированный код не постится

Функция в цикле проверяет, что все символы, содержащиеся в первой строке, содержатся и во второй. Но вот возвращает она полную чушь - разность между двумя указателями. Смысла нет.
Может ты перепутал, и там должно было быть:
"return *p1 - *p2" ?
Если так, то функция вернет 0, если проверка успешная и не 0 в противном случае.

Если убрать "if (!*p2) break", то разность (*p1 - *p2) перестанет что-либо отражать.

Рекурсия тут совершенно неуместна.

Последний раз редактировалось Machine; 04.07.2003 в 00:09.