wFs 0 Denunciar post Postado Junho 13, 2006 #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
ricci ottadnot 4 Denunciar post Postado Junho 13, 2006 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