prinos 0 Denunciar post Postado Junho 12, 2012 A questão é a seguinte: Escreva um algoritmo que leia uma matriz de valoreis inteiros com M linha e N colunas. Após a digitação imprimir a soma da linha que possui o menor valor digitado, considere que ele existe. #include <stdio.h> #include <stdlib.h> #define N 3 #define M 4 int main (){ int matriz[N][M], i, j, menor, lin_menor, soma=0; for (i=0; i<N; i++) for (j=0; j<M; j++) { printf(\nInforme o valor de matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } menor = matriz[0][0]; lin_menor = 0; for (i=0; i<N; i++) for (j=0; j<M; j++) if (menor > matriz[i][j]) { menor = matriz[i][j]; lin_menor = i; } for (j=0; j<M; j++) soma += matriz[lin_menor][j]; printf("\nMenor valor: %d na linha %d\nSoma: %d", menor, lin_menor, soma); return 0; } O programa não ta compilando! Tô tentando fazer isso há umas 3 horas, alguém pode me ajudar? Grato! prinos, veja como eu editei para aprender como usar. Edite o tópico para ver. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 12, 2012 Você pode ler o que o compilador está mandando. Ele fala quais são os erros. Sugiro que use Syntax Highlighting, se não usa, pois só com o do fórum mesmo já deu para perceber que está faltando um " no primeiro printf(). Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
prinos 0 Denunciar post Postado Junho 12, 2012 Valeu Renato, acho que agora aprendi como usar o code Então, fiz algumas alterações no código e agora ta compilando. Ficou assim: #include <stdio.h> #include <stdlib.h> #define N 3 #define M 4 int main() { int matriz[N][M], i, j, menor, lin_menor, soma=0; for (i=0; i<N; i++){ for (j=0; j<M; j++){ printf("\n Informe o valor de matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } } menor = matriz[0][0]; lin_menor = 0; for (i=0; i<N; i++){ for (j=0; j<M; j++){ if (menor > matriz[i][j]) { menor = matriz[i][j]; lin_menor = i; } } } for (j=0; j<M; j++){ soma = matriz[lin_menor][j]; printf("\nMenor valor: %d na linha %d\nSoma: %d", menor, lin_menor, soma); } system("pause"); return 0; } Mas eu gostaria que mostrasse a soma de cada linha quando eu compilasse e destacasse a menor soma, só que não ta dando certo, alguém pode ver qual meu erro? Compartilhar este post Link para o post Compartilhar em outros sites
Isaias Tavares 0 Denunciar post Postado Junho 13, 2012 1º - Quando executa o seu programa aparece assim: Informe o valor da matriz[0][0]: Não fica muito legal, ne? Só uma dica, acho que ficaria melhor assim: printf("Informe o valor da linha %d na coluna %d:", i + 1, j + 1); 2º - Na condição você inverteu, o certo seria verificar se a matriz[j] é menor que o outro valor antes tido como menor, por exemplo: if (matriz[i][j] < menor) { 3º - você colocou o printf dentro do for, ou seja, aquela mensagem vai repetir várias vezes... não precisa disso, eh melhor deixar fora do for. 4º - você esqueceu de incrementar a soma, no caso, ficaria assim: soma += matriz[lin_menor][j]; ou soma = soma + matriz[lin_menor][j]; 5º - No seguinte código: printf("\nMenor valor: %d na linha %d\nSoma: %d", menor, lin_menor, soma); Nesse caso, supondo que o menor valor estivesse na primeira linha da matriz, quando fosse imprimir. Imprimiria por exemplo, valor tal na linha 0; A matriz para o usuário ela não tem linha 0, para ele começa da linha 1, coluna 1; Então pra ficar mais bonito de se ver, você pode está colocando assim: printf("\nMenor valor: %d na linha %d\nSoma: %d", menor, lin_menor + 1, soma); Espero ter ajudado Compartilhar este post Link para o post Compartilhar em outros sites
prinos 0 Denunciar post Postado Junho 13, 2012 Valeu Isaias, deu tudo certo. Compartilhar este post Link para o post Compartilhar em outros sites