Questão de Matrizes em Linguagem C - Me Ajudem por favor!?
Pessoal, eu não estou conseguindo dar a resposta que a questão quer.. eu sei que o programa tem que somar cada linha separadamente e no final fazer a comparação.. mas ta complicado fazer isso.. :S
#include <stdio.h>
#include <stdlib.h>
//2. Dada uma matriz B 3x3, determine a linha de B que possui a maior soma de seus elementos.
main()
{
int lin, col, soma=0, maior, linha;
int mat[3][3];
for(lin=0; lin<=2; lin++)
{
for(col=0; col<=2; col++)
{
printf("\nDigite o ELEMENTO da Linha %d, coluna %d da Matriz B: ", lin+1, col+1);
scanf("%d", &mat[lin][col]);
}
}
printf("\n\n");
for(lin=0; lin<=2; lin++)
{
for(col=0; col<=2; col++)
{
soma = soma + mat[lin][col];
maior = soma;
}
if(soma > maior)
{
maior = soma;
linha = lin + 1;
}
}
printf("\nA Linha %d Possui a Maior Soma dos Seus Elementos: %d\n", linha, maior);
printf("\n\n\n");
system("PAUSE");
}
Comments
O problema está aqui:
for(lin=0; lin<=2; lin++)
{
for(col=0; col<=2; col++)
{
soma = soma + mat[lin][col];
maior = soma; /*** <== esta operação está errada neste ponto ***/
}
if(soma > maior)
{
maior = soma;
linha = lin + 1;
}
}
Tente:
for(lin=0; lin<=2; lin++) {
for(col=0; col<=2; col++) {
soma += mat[lin][col];
}
if (lin == 0 || soma > maior) {
maior = soma;
linha = lin + 1;
}
}
http://codepaste.net/n58fas
Veja se ajuda, acabei de fazer, eu inicializei a matriz na declaração, mas adaptar isso para entrada via teclado creio que você saiba fazer...
Qualquer dúvida poste.
abs