Passar vetor pra função
objetivo Por que vetor não precisa de & e por que a função mexe no original.
A assinatura é int somar(int v[], int n). Vetor vai junto com o tamanho, sempre, porque dentro da função ele não sabe o próprio tamanho.
Na você escreve só somar(v, n), sem &. O nome do já é um .
Consequência prática: a função mexe no vetor ORIGINAL. É por isso que as funções de são void e mesmo assim o vetor sai ordenado.
Onde todo mundo escorrega
- Dentro da função não existe jeito de descobrir o tamanho do vetor. Por isso o n sempre vai junto.
- Como a função mexe no original, uma função que ordena não precisa devolver nada.
Desafio
Escreva a função contaMaiores, que recebe um vetor, o tamanho e um valor x, e devolve quantos elementos do vetor são maiores que x.
int contaMaiores(int v[], int n, int x)| chamada | saída esperada |
|---|---|
| v = {1, 5, 3, 9}contaMaiores(v, 4, 3) | 2 |
| v = {1, 5, 3, 9}contaMaiores(v, 4, 0) | 4 |
| v = {2, 2}contaMaiores(v, 2, 5) | 0 |
int contaMaiores(int v[], int n, int x) {
// percorra o vetor e conte
}Ctrl+Enter (Cmd+Enter no Mac) roda. Esc sai do editor.
Ver a pilha de chamadas passo a passo
Mostra o que o seu código faz em cada chamada. É uma simulação didática, não substitui o botão de testar.
Dicas
Tenta sozinho primeiro. Travou de verdade, abre a primeira.