Ir para conteúdo

POWERED BY:

Arquivado

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

sarcofagobra

Mostrar maior valor de uma Matriz

Recommended Posts

Pessoal ainda to aprendendo Matriz, e to com um exercício simples aqui q não to conseguindo fazer. O que tenho que mudar no código baixo?

 

Exercício: Leia uma matriz 10 x 10 e escreva a localização (linha e a coluna) do

maior valor.

 

 

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


main ()
{
int i=1, j=1, Mat[10][10], maior;

while(i<11){
while(j<11){
printf("Informe o valor da Matriz[%d][%d]= ", i,j);
scanf("%d",&Mat[i][j]);


i++;
j++;}
}
for(i=0;i<=9;i++){
for(j=0;j<=9;j++)
maior=Mat[1][1];
if(Mat[i][j]>maior)
printf("O maior valor é %d", Mat[i][j]);
}
system("pause");

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo se eu digitar 1,2,3,4... Pq sempre mostra a penultima linha como a maior? Tem como eu usar menos fors?

 

 

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


main ()
{
	int i, j, Mat[2][2], maior;
  	for(i=1;i<=2;i++)
{
	for(j=1;j<=2;j++)
	{
	printf("Informe o valor da Matriz[%d][%d]= ", i,j);
scanf("%d",&Mat[i][j]);
}

}
printf("O maior valor é: ");
maior=Mat[1][1];
 for(i=1;i<=2;i++)
{
	for(j=1;j<=2;j++){

if(Mat[i][j]>maior)
maior=Mat[i][j];

}

}
printf("%d \n", maior);


	system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro: índices começam em 0, e não em 1. Quando você declara a matriz, os índices de cada elemento são:

 

[ (0,0) (0,1) ]

[ (1,0) (1,1) ]

 

Por isso, arrume todos os índices que você usa no programa e veja que resultado dá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo, mais no ultimo for que é o for do J eu tive q tirar as 2 chaves pra funcionar, sabe me explicar pq nao funciona com as chaves? E tem como eu fazer todo esse programa so com os 2 primeiros fors?

 


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


main ()
{
	int i, j, Mat[2][2],maior;
  	for(i=0;i<=1;i++)
{
	for(j=0;j<=1;j++)
	{
	printf("Informe o valor da Matriz[%d][%d]= ", i,j);
scanf("%d",&Mat[i][j]);
}

}

maior=Mat[1][1];
 for(i=0;i<=1;i++)
{
	for(j=0;j<=1;j++)

if(Mat[i][j]>maior)
maior=Mat[i][j];
}
printf("O maior valor é: %d\n", maior);


	system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona com as chaves (acabei de executar).

P/ tirar o segundo loop aninhado você só transfere a comparação do maior pra dentro do for-j depois da leitura.

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.