Передача параметров функции - C (СИ)
Формулировка задачи:
Не могу передать параметры из одной функции в другую
Предупреждения:
warning: passing argument 2 of 'strcat' makes pointer from integer without a cast
warning: assignment makes integer from pointer without a cast
warning: passing argument 4 of 'dopsearch' makes integer from pointer without a cast
char *search (char slova[][N], int sl, char res[]) { int max=0,i; char *w; for(i=0;i<=sl;i++) { if (sravnenie(slova[i]) > max) { max = sravnenie(slova[i]); w = slova[i]; } } dopsearch(max,sl,slova,w,res); } char *dopsearch (int max, int sl, char slova[][N], char w, char *res) { int i; if (max>0) { for(i=0;i<=sl;i++) { if (sravnenie(slova[i]) == max) { w = slova[i]; strcat (res, " "); strcat (res, w); } } } return res; }
Решение задачи: «Передача параметров функции»
textual
Листинг программы
char *dopsearch (int max, int sl, char slova[][N], char* w, char *res) { int i; if (max>0) { for(i=0;i<=sl;i++) { if (sravnenie(slova[i]) == max) { strcpy(w,slova[i]); strcat (res, " "); strcat (res, w); } } } return res; }
Объяснение кода листинга программы
- Входные параметры функции:
max
- максимальное значение для поискаsl
- количество слов в массивеslova
slova[][N]
- двумерный массив слов для поискаw
- временная переменная для хранения слова, если оно найденоres
- результат поиска, строка, которая дополняется найденными словами
- Создаются три переменные:
i
- счётчик в цикле- Если
max
больше нуля, то начинается внутренний цикл - Внутренний цикл проходит по всем элементам массива
slova
- Проверка условия
sravnenie(slova[i]) == max
- Если условие выполняется, то в переменную
w
копируется текущее слово из массиваslova
- К строке
res
добавляется пробел, а затем словоw
с помощью функцииstrcat
- Если условие выполняется, то в переменную
- После завершения внутреннего цикла возвращается результат поиска в переменной
res
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д