S|N
Power Member
Como faço isto? Preciso de usar recursividade nesta parte do código....
http://www.rafb.net/paste/results/YhHutX92.html
http://www.rafb.net/paste/results/YhHutX92.html
for( int i = indice_do_elemento_a_remover + 1;
i < numero_alunos;
i++) {
strcpy(nome[i - 1], nome[i]);
}
Karmack disse:Isto é ilegal sintacticamente (como é indicado pelo compilador):
remover(num_aluno, *nalunos, numero[])
Ou passas numero ou então numero[<indice>].
Precisas mesmo de usar o remover recursivamente.
Eu expliquei numa outra thread que é mais fácil copiar os elementos (num array), que estão a seguir ao elemento a remover, para a sua posição anterior. Assim removes implicitamente o elemento pretendido.
Se for o ultimo então basta decrementar a variavel que contem a informação do numero de alunos.
Irá ser algo parecido com isto:
Código:for( int i = indice_do_elemento_a_remover + 1; i < numero_alunos; i++) { strcpy(nome[i - 1], nome[i]); }
Moralez disse:É uma função perfeitamente válida, uma função que não retorna nada nem recebe nada.
Mas tenta aplicar sempre o comentário -Wall ao compilar o programa (caso uses o gcc, claro)
Karmack disse:O que me intriga é esta linha:
if (remover(num_aluno, *nalunos, numero[])==1)