duda con programa de matrices!!!!

Iniciado por EdgarKrieger, 3 Diciembre 2013, 18:23 PM

0 Miembros y 1 Visitante están viendo este tema.

EdgarKrieger

Hola a todos,tengo una duda en mi programa, tengo que hacer la división de una matriz de (3,4) entre el elemento de la matriz (2,2) esto es lo que llevo:


//Programa que divide una matris de 3,4 entre el elemento 2,2
#include <stdio.h>
int main()
{
   int matrix[5][5],i,j,B[5][5];
   for(i=0;i<3;i++){
      for(j=0;j<4;j++){
         printf("Valor matriz[%d][%d] >>> ",i+1,j+1);
         scanf("%d",&matrix[j]);
         while(getchar()!='\n');
      }
   }
   for(i=0;i<3;i++){
      printf("\n");
      for(j=0;j<4;j++){
         printf("\t%d",matrix[j]);
      }
   }
   printf("\n");
   for(i=0;i<3;i++){
      for(j=0;j<4;j++){
         if(matrix[2][2]==0){
            printf("No se puede porque es cero\n");
         }else{
            B[j]=matrix[2][2]/matrix[j];
         }
      }
   }
   for(i=0;i<3;i++){
      printf("\n");
      for(j=0;j<4;j++){
         printf("\t%d",B[j]);
      }
   }
   printf("\n");
   return 0;
}

y mi duda es que me sale core generado y eso sale cuando divido entre cero pero cuando introduzco otro elemento en (2,2) no me hace la división correspondiente, por favor alguien que me ayude en verdad no tengo la mas mínima idea de lo que tengo mal.
"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei

ivancea96

En primer lugar, pusiste:
scanf("%d",&matrix[j]);
B[j]=matrix[2][2]/matrix[j];


matrix[j]. Dado que es una amtriz bidimensional, tienes que poner la segunda "dimension", matriz[j][X]. Corríge eso, y vuelve a probar. Si no va, postea, y miro que tal. No lo corrijo antes, porque a lo mejor no lo haría como tú lo quieres hacer.

crazykenny

Bueno, una opción que se me ocurre ahora mismo es, bueno, que podrias probar seria asignar los dos valores de las posiciones de la matriz en cuestión en dos variables y luego utilizar estas variables para realizar la división.
Muchas gracias por vuestra atención.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

leosansan

Cita de: honguitoSan en  3 Diciembre 2013, 18:23 PM
Hola a todos,tengo una duda en mi programa, tengo que hacer la división de una matriz de (3,4) entre el elemento de la matriz (2,2) esto es lo que llevo:
............

//Programa que divide una matriz de 3,4 entre el elemento 2,2


Antes que nada cuando postees código elige las etiquetas GeSHi y toma la C++. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Otra cosa es que al ir los índices de la matriz desde  0,0 el elemento 


Código (cpp) [Seleccionar]
matrix[2][2] es en realidad el matrix[1][1]

y vas a dividir por ese elemento y no al revés con lo que sería

Código (cpp) [Seleccionar]
B[i][j]=matrix[i][j]/matrix[1][1];

Para no liarte he respetado el código que propones, que quedaría así:

Código (cpp) [Seleccionar]
#include <stdio.h>
int main()
{
int matrix[3][4],i,j,B[3][4];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("Valor matriz[%d][%d] >>> ",i+1,j+1);
scanf("%d",&matrix[i][j]);
while(getchar()!='\n');
}
}
for(i=0;i<3;i++){
printf("\n");
for(j=0;j<4;j++){
printf("\t%d",matrix[i][j]);
}
}
printf("\n");
if(matrix[1][1]==0){
        printf("No se puede porque es cero\n");
        return 1;
    }
for(i=0;i<3;i++)
for(j=0;j<4;j++)
B[i][j]=matrix[i][j]/matrix[1][1];
for(i=0;i<3;i++){
printf("\n");
for(j=0;j<4;j++)
printf("\t%d",B[i][j]); }
printf("\n");
return 0;
}


Saluditos! ....

EdgarKrieger

Leosansan gracias por la ayuda y si tomare en cuenta eso que dices que elija la etiqueta GeSHi
"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei