Ir para conteúdo

POWERED BY:

Arquivado

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

tgbara

[Resolvido] Manipulação de vetores

Recommended Posts

Olá colegas, estou com uma lista de 10 exercicios sobre vetores no qual já resolvi 7 aí tem 3 que me deixaram dúvidas em como resolver,em como fazer comparação de vetores para achar o menor numero,o maior,o segundo maior numero do vetor,o maior dentre dois vetores,enfim.

segue os exercicios abaixo para que possam me dar uma luz como resolve-los,acredito que seja simples mesmo,mas estou com dúvidas.

 

5- Forme um vetor de 7 posições e informe o segundo maior numero.

8- Forme dois vetores de 5 posições e indentifique o maior numero dentre os dois vetores.

6-Forme um vetor de 9 posições.Identifique o maior e o menor numero e imprima a soma dos dois valores.

 

obrigado desde já,

um abraço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok,

e o que você ja tem pronto??

 

Eu acredito que você ja começou a resolver, estou certo?

posta ai o seu código, e onde está tendo dificuldades, que te ajudaremos!!

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Questão 5

não consegui visualizar bem a lógica tanto que estava fazendo um programa muito extenso,confuso...preciso saber como fazer comparação de vetores de um modo mais fácil,prático para daí saber qual é o maior,menor,o segundo maior numero como pede nos exercicios que postei acima.

main () 
 {		   
		  int i,num[7];
		  
		   for(i=0;i<7;i++){
			printf("\nDigite um numero:");
			scanf("%i",&num[i]);
		   
 }
		   for(i=0;i<1;i++){
			
			if((num[i]>num[i+1]) && (num[i]>num[i+2]) && (num[i]>num[i+3]) && (num[i]>num[i+4]) && (num[i]>num[i+5]) && (num[i]>num[i+6]))
			 printf(" \n o maior numero digitado nos vetores eh: %i\n",num[i]);
			else
			   if((num[i+1]>num[i]) && (num[i+1]>num[i+2]) && (num[i+1]>num[i+3]) && (num[i+1]>num[i+4])&& (num[i+1]>num[i+5]) && (num[i+2]>num[i+6]))
				printf(" \n o maior numero digitado nos vetores eh: %i\n",num[i+1]);
			   else
				 if((num[i+2]>num[i])&& (num[i+2]>num[i+1]) && (num[i+2]>num[i+3]) && (num[i+2]>num[i+4])&& (num[i+2]>num[i+5]) && (num[i+2]>num[i+6]))
				  printf("\n o maior numero digitado nos vetores eh: %i\n",num[i+2]);
				 else
				   if((num[i+3]>num[i])&& (num[i+3]>num[i+1]) && (num[i+3]>num[i+2]) && (num[i+3]>num[i+4])&& (num[i+3]>num[i+5]) && (num[i+3]>num[i+6]))
					printf("\n o maior numero digitado nos vetores eh: %i\n",num[i+3]);
				   else
					 if((num[i+4]>num[i]) && (num[i+4]>num[i+1]) && (num[i+4]>num[i+2]) &&  (num[i+4]>num[i+3])&& (num[i+4]>num[i+5]) && (num[i+4]>num[i+6]))
						 printf(" \n o maior numero digitado nos vetores eh: %i\n",num[i+4]);
					   if((num[i+3]>num[i])&& (num[i+3]>num[i+1]) && (num[i+3]>num[i+2]) && (num[i+3]>num[i+4])&& (num[i+3]>num[i+5]) && (num[i+3]>num[i+6]))
					printf("\n o maior numero digitado nos vetores eh: %i\n",num[i+3]);
				   else
					 if((num[i+4]>num[i]) && (num[i+4]>num[i+1]) && (num[i+4]>num[i+2]) &&  (num[i+4]>num[i+3])&& (num[i+4]>num[i+5]) && (num[i+4]>num[i+6]))
						 printf(" \n o maior numero digitado nos vetores eh: %i\n",num[i+4]);
			
			}
			
			
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tudo que você precisa é de um valor auxiliar, por exemplo:

//vetor é array de integers e tam é o tamanho desse array
int pegarMaior(int* vetor, int tam)
{
int aux=0, i;

for (i=0; i<tam; i++)
{
	if (vetor[i] > aux) aux = vetor[i];
}

return aux;
}

entendeu a lógica??

É bem tranquilo, olha...

você terá um valor auxiliar (aux)

vai percorrer toooodo o vetor, e para cada item, você checa se é maior que aux, se for, atribua esse valor à aux.

 

=D

 

ps.: não use system("pause")

http://forum.imasters.com.br/index.php?showtopic=336835

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma coisa q gosto de fazer qnd é para achar o maior valor, o menor e assim por diante..

é primeiro ordená-lo usando um vetor auxiliar..

assim c você quiser digamos o terceiro maior valor você pegará a posição 2 do vetor, pq td começa no indice 0.

vow dar um exemplo de caso o vetor naum tenha numeros repetidos.

 

Exemplo:

vetor == 5 , 2, 77, 10, 15;
vetorAux = ordenavetor(vetor);
vetorAux == 77, 15, 10, 5, 2;
ai c você quiser o terceiro maior valor você fará assim:

terceiroMaiorValor = vetorAux[2];
vetorAux[2] == 10;

entendeu + ow - como eu faria??

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.