Guião laboratorial n.º 1 – exercício 6
“Desenvolva uma função que receba um tabela de inteiros positivos e o seu tamanho e verifique quantos dos elementos da tabela são pares e quantos são ímpares. Deve ainda calcular qual o maior valor presente na tabela e a posição onde ele se encontra.
Por exemplo, se o conteúdo da tabela for:
1 3 7 5 2 10 9 7 7 1
Existem 2 números pares, 8 números ímpares. O maior número é o 10 e está na posição 5.
A função recebe como argumentos um ponteiro para o início da tabela, o número de elementos que esta contém, um ponteiro para o inteiro onde deve colocar o n.º de elementos ímpares, um ponteiro para o inteiro onde deve colocar o n.º de elementos pares, um ponteiro para o inteiro onde deve colocar o maior valor armazenado na tabela e um ponteiro para o inteiro onde deve colocar a posição onde o maior valor se encontra. A sua declaração é a seguinte:
void f(int *t, int tam, int *np, int *ni, int *maior, int *pos);
”
#include <stdio.h> #include <stdlib.h> #include <string.h> #define TAM 10 void f(int *t, int tam, int *np, int *ni, int *maior, int *pos){ int *p; p=t; int conta_par=0, conta_impar=0, m= p[0],posicao=0, aux=0; for(p=t; p<t+tam; p++){ if(*p%2==0){ conta_par++; }else{ conta_impar++; } if(*p>m){ m=*p; } } for(p=t; p<t+tam; p++){ aux++; if(*p==m){ printf("%d %d", aux, posicao); posicao=aux; } } *np=conta_par; *ni=conta_impar; *maior=m; *pos=posicao; } int main() { int tabela[]={1,3,7,5,22,10,9,7,7,11}; int n_pares=0, n_impares=0, maior=0, posicao=0; f(tabela, TAM, &n_pares, &n_impares, &maior, &posicao); printf("\nTotal de numeros pares: %d", n_pares); printf("\nTotal de numeros impares: %d", n_impares); printf("\nO maior numero: %d", maior); printf("\nPosicao do maior numero: %d", posicao); return 0; }
0 thoughts on “Guião laboratorial n.º 1 – exercício 6”