Ir ao conteúdo

Programa em C que procure os dois maiores numeros do vetor, com dois FOR aninhados, e some o intervalo desses dois maiores numeros.


Bruno Giovanni

Posts recomendados

Postado
Meu código ta ae, não consigo mais nada, se alguem puder ajudar ae.

Preciso encontrar os dois maiores e somar o intervalo desses numeros

 



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


void procuraMaiores (int vet[], int n){


int aux = 0, i, j, maior = 0, maior1 =  0, maiorT;






maior=vet[0];
maior1=vet[1];


for(i=0; i<=n-1; i++){
printf("aqui o [_I_] pega o = Posicao%d\n", i);
for(j=i+1; j<n-1; j++){
printf("aqui o [j] pega o = Posicao%d\n", j);
if(vet[j+1] > maior1){
aux = vet[j];
maior1 = vet[j+1];
if(aux>maior){
maior = aux;
printf("aqui o maior = %d\n", maior);
}
else if((vet[j+1] > maior) && (maior1 > maior)){
maior1 = maior;
printf("aqui o maior1 = %d\n", maior1);
}
}
}


}


for(i=0; i<n; i++){
printf("%d - ", vet[i]);
}
printf("\n\n");
printf("O primeiro maior é: %d\n", maior1);
printf("O segundo maior é: %d\n", maior);
}


int main(){


int vet[] = {4, 9, 11, 3, 5, 10, 21, 9, -1, 3};
int n = 10;




procuraMaiores(vet, n);


system("pause");
}

Postado

Uma forma de facilitar o processo, é pegar os maiores valores e os índices deles no vetor,

   for(i = 0; i < MAX; i++)        for(n = 0; n <= i; n++){            if(vet[n] > pri){                pri = vet[n];                ind1 = n;            }            if(vet[n] > seg && vet[n] != pri){                seg = vet[n];                ind2 = n;            }        }
Fazer um swap dos indices caso ind1 seja maior que o 2 e depois basta somar

for(i = ind1; i <= ind2; i++)    s += vet[i];
Postado


#include <stdio.h>
#include <stdlib.h>
#define TAM 10


void procuraMaiores (int vet[]){


int i, n, j, maior1 = 0, maior2 =  0, ind1=0, ind2=0, aux2, s=0;






maior1=vet[0];
maior2=vet[0];


while(ind1 <= ind2){
  for(i = 0; i < TAM; i++){
         for(n = 0; n <= i; n++){
//         for(j=ind1; j<=ind2; j++){
//         if (ind1 < ind2){
//         aux2 = ind2;
//         ind1 = ind2;
//         ind1 = aux2;
//         }
//         s = s + vet[j];
//         }
           if(vet[n] > maior1){
               maior1 = vet[n];
               ind1 = n-1;
               
           }
           if(vet[n] > maior2 && vet[n] != maior1){
               maior2 = vet[n];
               ind2 = n;
               
           }
           
        }


    }


    s = s + vet[i];
    ind1++;


   }


for(i=0; i<TAM; i++){
printf("%d | ", vet[i]);
}


printf("\n\n");
printf("O primeiro maior é: %d\n", maior1);
printf("O segundo maior é: %d\n", maior2);
printf("O indice do maior é: %d\n", ind1);
printf("O indice do segundo maior é: %d\n", ind2);
printf("A soma é: %d\n", ind1);
}


int main(){


int vet[] = {4, 19, 1, 9, 5, -5, 9, 10, -1, 3};




procuraMaiores(vet);


system("pause");
}


 

 

Fiz mais alguma coisa aqui, mais ta dando erro, alguem ajuda ae?

precisava disso pra hj

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...