Ir para conteúdo

POWERED BY:

Arquivado

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

wFs

Armazenar os maiores numero em um vetor.

Recommended Posts

#include <stdio.h>#include <conio.h>#define mt 5#define mt2 5#define vt 5main(){  int mat[mt][mt2], vet[vt], i, j;    /*for (i = 0; i < mt; i++) {	  for (j = 0; j < mt2; j++) {			   mat[i][j] = 0;	  }  }  for (i = 0; i < mt; i++) {	  vet[i] = 0;  }*/    for (i = 0; i < mt; i++) {	  for (j = 0; j < mt2; j++) {		  printf ("\n Digite um numero:	 ");		  scanf  ("%d",&mat[i][j]);	  }  }  for (i = 0; i < mt; i++) {	  for (j = 0; j < mt2; j++) {		  if (mat[i][j] > mat[i+1][j+1]) {			   vet[i] = mat[i][j];		  }else{			   vet[i] = mat[i+1][j+1];		  }	  }  }  for (i = 0; i < mt; i++) {	  printf ("\n Maiores:  %d", vet[i]);  }  getch();  return 0;				}

O que pode estar errado nesse código? A intenção eh o seguinte, pegar os maiores numeros de cada linha, coloca-los em um vetor e exibi-los depois, até a 3ª linha da certo, mas na 4ª e 5ª linha da pau...

 

Alguem me ajuda pls.

Compartilhar este post


Link para o post
Compartilhar em outros sites

repare neste trecho do seu codigo:

for (i = 0; i < mt; i++) {	  for (j = 0; j < mt2; j++) {		  if (mat[i][j] > mat[i+1][j+1]) {			   vet[i] = mat[i][j];		  }else{			   vet[i] = mat[i+1][j+1];		  }	  }  }
veja que qdo as variaveis de controle i e j atingem o valor de 4 dentro do laço for, a comparação mat[j] > mat[i+1][j+1] naum vai ser válida, pois naum vai existir uma sexta linha ou sexta coluna na matriz (quando i ou j valem 4, matriz[i+1][ j+1] naum existe..)

 

a solução seria a seguinte.. faça os indices de controle irem ate mt-1 e mt2-1:

for (i = 0; i < mt-1; i++) {	  for (j = 0; j < mt2-1; j++) {		  if (mat[i][j] > mat[i+1][j+1]) {			   vet[i] = mat[i][j];		  }else{			   vet[i] = mat[i+1][j+1];		  }	  }  }
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.