hola , necesito realizar las operaciones basicas como insertar por fila,por columna,eliminar, apartir de un vector que tiene los valores de una matriz sin tomar en cuenta los ceros, este es una parte de mi algoritmo
lo que hago es primero leo una matriz cualqiera, luego paso los valores que no sean ceros(si esque los hay), a un vector, a partir del vector, lo miestro, como si fuera una matriz.
Lo que quiero es con el vector creado, insertar, eliminar, por filia y columna
void leermatriz(int x[MAX][MAX],int *dimf,int *dimc)
{
int i,j,m,n,val;
printf("\n\tIngresar el numero de filas: ");
fflush(stdin);
scanf("%d",&m);
printf("\n\tIngresar el numero de columnas: ");
scanf("%d",&n);
printf("\n\tIngresar datos:\n");
if(m<MAX&&n<MAX){
for(i=0;i<m;){
for(j=0;j<n;){
printf("\n\tM[%d][%d]: ",i+1,j+1);
scanf("%d",&val);
x[i][j]=val;
j=j+1;
}
i=i+1;
}
*dimf=m;
*dimc=n;
}else{
printf("\n\tDimension fuera de rango");
}
}
void crearvector(matriz mx[MAX],int *dim,int x[MAX][MAX],int dimf,int dimc)
{
int i,j,k,n;
n=dimf*dimc;
*dim=n;
if(*dim>=0&&*dim<MAX){
k=0;
for(i=0;i<dimf;i++){
for(j=0;j<dimc;j++){
if(x[i][j]!=0){
mx[k].fila=i;
mx[k].columna=j;
mx[k].valor=x[i][j];
k=k+1;
}
}
}
*dim=k;
}else{
printf("\n\tfuera de rango");
}
}
void mostrarvector(matriz mx[MAX],int dimf,int dimc)
{
int i,j,k=0;
for(i=0;i<dimf;i++){
for(j=0;j<dimc;j++){
if(i==mx[k].fila&&j==mx[k].columna){
printf("\t%d",mx[k].valor);
k=k+1;
}else{
printf("\t%d",0);
}
}
printf("\n");
}
}
he intentado insertar en el vector, pero me salen algunos ceros ,em algunos casos
y cuando quiero insertar columna peor
tengo que realizar esto apartir de un verctor que optimize la matriz es decir que ni acepte ceros.
¡Buenas!
No queda nada claro que es lo que quieres hacer.
Una pregunta, en las funciones crearvector y mostrarvector, ¿estas pasando un vector de matrices para guardar en cada una de ellas un solo valor?
Si no explicas mejor lo que quieres hacer creo que poco te podremos ayudar.
¡Saludos!
lo que hago es primero leo una matriz cualqiera, luego paso los valores que no sean ceros(si esque los hay), a un vector, a partir del vector, lo miestro, como si fuera una matriz.
Lo que quiero es con el vector creado, insertar, eliminar, por filia y columna
hracias por su respuesta
Bueno, ahora nos hace falta saber la definicion del tipo matriz, porque a decir verdad, ver un vector de tipo matriz la verdad es que confunde bastante.
¡Saludos!
Hola razler, bueno cuando dices "insertar" asumo que deseas sustituir todos los valores de una fila o columna de una matriz. Si ese es el caso, lo más sencillo seria convertir el vector de nuevo en una matriz, efectuar las operaciones de inserción en esa matriz y luego convertirla de nuevo en su representación optimizada de vector.
Saludos.