Guião laboratorial n.º 0 – exercício 5

“Desenvolva uma função que encontre o segundo maior elemento armazenado num vetor de inteiros. A função recebe como argumentos o nome e a dimensão do vetor. Devolve como resultado o segundo maior valor existente no vetor. Pode assumir que o vetor recebido não contém elementos repetidos.”

#include <stdio.h>
#include <stdlib.h>

#define TAM 10

int funcao1(int v[TAM], int t){
int maior=v[0],maior2=v[0];
int vector_sem_maior[TAM];
int i;

//vou procurar o maior
for(i=0; i<t; i++){
    if(v[i]>maior)
    {
        maior=v[i];
    }
}

//vou preencher um vetor auxilar sem o maior
for(i=0; i<t; i++){
    if(v[i]!=maior)
    {
        vector_sem_maior[i]=v[i];
    }else{
        vector_sem_maior[i]=0;
    }
}

//vou procurar o segundo maior
for(i=0; i<t; i++){
    if(vector_sem_maior[i]>maior2)
    {
        maior2=vector_sem_maior[i];
    }
}

return maior2;
}

int main()
{
    int vector[TAM]={0,1,20,3,4,5,6,7,8,29};
    printf("o segundo maior vem: %d", funcao1(vector, TAM));
    return 0;
}


Tags : ,