Funções vetores matrizes
Vetores podem também ser parâmetros de funções.
Até agora, todos os parâmetros que usamos eram variáveis simples.
Quando um vetor é passado como parâmetro, o que é passado na verdade é o endereço ou localização do vetor. Desta forma, é possível que se tenha acesso a todos os elementos do vetor, pois os elementos são contíguos.
P71) escreva uma função zera (a, n) que zera os n primeiros elementos do vetor a de inteiros.
// P71
// Função zera (a, n) que zera os n primeiros elementos
// do vetor a de inteiros
int zera (int a[], int n) {int i = 0; while (i < n) a[i++] = 0; // não precisa retornar nada }
Alguns exemplos de chamada da função zera
// exemplo de programa principal int main()
{int x[100], y[30], z[50]; int k = 20; // zerar todo o vetor x zera (x,100); //zerar os 30 primeiros de x zera (x, 30); // zerar todo o vetor y zera (y,30); // zerar os k primeiros de z zera (z, k);
}
P72) Escreva uma função conta (a, n, x) que devolve como resultado, o número de elementos iguais a x que aparecem no vetor a de n elementos.
// P72
// Função conta (a, n, x) que devolve como resultado,o número
// de elementos iguais a x que aparecem no vetor a de n elementos.
int conta (int a[], int n, int x) {int i = 0, cc = 0; while (i < n) {if (a[i] == x) cc++; i++; } return cc; }
Abaixo alguns exemplos de chamadas da função conta:
#include
int main()
{int vet[200]; int n, k; // // // atribui a k o número de nulos de x k = conta (vet, 200, 0); // // // imprime o número de -1s nos 50 primeiros elementos de vet printf("\nnumero de elementos iguais a -1 = %5d", conta (vet, 50, -1)); // // // imprime quantas vezes cada número de 0 a 9 aparece nos n primeiros for (k = 0; k < 10; k++) printf("\n%5d aparece %5d vezes", k, conta (vet, n, k)); // // // Lembram-se daquele exercício que verificava quantas vezes cada