viciado 1 Denunciar post Postado Novembro 22, 2008 Programa que preencha uma matriz 6x3, calcule e mostre o maior elemento da matriz e sua respectiva posição o menor elemento da matriz e sua respectiva posição #include <stdio.h> #include <stdlib.h> int main() { int i,j,M[6][3]; int cont = 1; for(i=0;i<6;i++) for(j=0;j<3;j++){ printf("Digite os elementos M[%d][%d]\n",i,j); scanf("%d",&M[j]); M[j] = cont; cont++; } int maior = M[0][0]; int menor = M[0][0]; for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] > maior){ maior = M[j]; } if(M[j] < menor) { menor = M[j]; } } for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] == maior){ break; } } printf("A posicao do maior e: \n %d %d \n", i, j); for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] == menor){ break; } } printf("A posicao do menor e: \n %d %d \n", i, j); system("PAUSE"); return 0; } Qual o erro do codigo. Pq a posição da resposta é sempre a mesma (maior 6 2) (menor 6 3) Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Novembro 22, 2008 Não posso dizer agora que estou de saída. Mas denovo o mesmo problema na definição da matriz. Retire esta parte: M[j] = cont; cont++; Quando voltar se já não tiverem resolvido o problema eu termino de resolver! Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 22, 2008 Não posso dizer agora que estou de saída. Mas denovo o mesmo problema na definição da matriz. Retire esta parte: M[j] = cont; cont++; Quando voltar se já não tiverem resolvido o problema eu termino de resolver! #include <stdio.h> #include <stdlib.h> int main() { int i,j,M[6][3]; int cont = 1; for(i=0;i<6;i++) for(j=0;j<3;j++){ printf("Digite os elementos M[%d][%d]\n",i,j); scanf("%d",&M[j]); } int maior = M[0][0]; int menor = M[0][0]; for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] > maior){ maior = M[j]; } if(M[j] < menor) { menor = M[j]; } } for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] == maior){ break; } } printf("A posicao do maior e: \n %d %d \n", i, j); for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] == menor){ break; } } printf("A posicao do menor e: \n %d %d \n", i, j); system("PAUSE"); return 0; } Continua o problema so que agora as duas respostas é (6 3) Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2008 Use variáveis para armazenar as posições do maior e do menor número. Assim você pode determinar as posições nos loops que verificam o maior e o menor número, retirnado os dois últimos loops Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 22, 2008 Use variáveis para armazenar as posições do maior e do menor número. Assim você pode determinar as posições nos loops que verificam o maior e o menor número, retirnado os dois últimos loops Como posso usar essas variaveis? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2008 #include <stdio.h> #include <stdlib.h> int main() { int i,j,M[6][3]; for(i=0;i<6;i++) for(j=0;j<3;j++){ printf("Digite os elementos M[%d][%d]\n",i,j); scanf("%d",&M[j]); } int maior = M[0][0]; int menor = M[0][0]; int linha_maior, coluna_maior, linha_menor, coluna_menor; for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[j] > maior){ maior = M[j]; linha_maior = i; coluna_maior = j; } if(M[j] < menor) { menor = M[j]; linha_menor = i; coluna_menor = j; } } printf("A posicao do maior e: \n %d %d \n", linha_maior, coluna_maior); printf("A posicao do menor e: \n %d %d \n", linha_menor, coluna_menor); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 23, 2008 #include <stdio.h> #include <stdlib.h> int main() { int i,j,M[6][3]; for(i=0;i<6;i++) for(j=0;j<3;j++){ printf("Digite os elementos M[%d][%d]\n",i,j); scanf("%d",&M[i][j]); } int maior = M[0][0]; int menor = M[0][0]; int linha_maior, coluna_maior, linha_menor, coluna_menor; for(i=0;i<6;i++) for(j=0;j<3;j++){ if(M[i][j] > maior){ maior = M[i][j]; linha_maior = i; coluna_maior = j; } if(M[i][j] < menor) { menor = M[i][j]; linha_menor = i; coluna_menor = j; } } printf("A posicao do maior e: \n %d %d \n", linha_maior, coluna_maior); printf("A posicao do menor e: \n %d %d \n", linha_menor, coluna_menor); return 0; } Obrigado. Resolvido Compartilhar este post Link para o post Compartilhar em outros sites