elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:29  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Leer matriz por filas y almacenarla por columnas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer matriz por filas y almacenarla por columnas  (Leído 656 veces)
mariyop

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Leer matriz por filas y almacenarla por columnas
« en: 28 Noviembre 2011, 16:31 »

Hola a todos!

Llevo varios días liada con una función y no sé qué le pasa. ¿Podéis ayudarme?
Os explico de qué va el tema. Tengo un archivo donde la primera línea contiene el nombre de una matriz, la segunda el número de filas, la tercera el nº de columnas, y después los elementos de la matriz leyéndolas por filas. Lo que necesito es leerla, y almacenarla en un vector con su nombre, en las dos primeras posiciones el tamaño, y después los elementos, pero como si la estuviera leyendo por columnas.

Os pongo un ejemplo:
Es decir, tenemos un matriz 2x3 A=[1 2 3
                                                     4 5 6]

En el archivo aparecerá como:

2
3
1
2
3
4
5
6

Al leerla, quiero que se almacena en un vector A=[2,3,1,4,2,5,3,6]

Y ahora os pongo el trozo de código que utilizo para almacenarla en el vector (la parte de abrir el archivo y todo eso va bien):


fscanf(fp,"%s",nombre);
fscanf(fp,"%lf",&filas);
fscanf(fp,"%lf",&columnas);

if (vect!=NULL){
                        indice=0;
            for(pi=0;pi<(int)columnas;pi++)
               {
                                         for (pj=0;pj<(int)filas;pj++)
                   {
                                                indice=(pj*columnas+pi+2);
                  vect=vect+indice;
                  fscanf(fp,"%lf",vect);

                    }
               }
         }


Al final lo único que me escribe es  2, 3, 1, 0, 0, 0, 0, 0. ¿Sabéis por qué escribe sólo el tamaño y el primer elemento? He ido comprobando el valor de la variable "indice" con el debugger y lo hace bien. Imagino que debe ser algo del puntero, pero no doy con el problema.


En línea
rir3760


Desconectado Desconectado

Mensajes: 382


Ver Perfil
Re: Leer matriz por filas y almacenarla por columnas
« Respuesta #1 en: 28 Noviembre 2011, 17:50 »

Para ayudarte lo mejor es que publiques el codigo fuente del programa completo o al menos las partes donde declaras las variables y realizas las operaciones de lectura y escritura.

Asi a primera vista no se ve bien el fragmento ya que por algun razon lees el numero de filas y columnas como tipo "double" y despues utilizas contadores de tipo "int".

Y si es un solo bloque de memoria no necesitas de dos bucles, basta con uno, mas o menos asi:
Código:
for (i = 0; i <filas * columnas; i++)
   fscanf(fp, "%lf", vect + i);

Pero de nuevo para sacarte de dudas mejor publica el codigo fuente completo.

Edito:

Por alguna (extraña) razon debes procesar columna por columna en lugar de lo usual que es por filas. En ese caso:
Código:
for (i = 0; i < columnas; i++){
   for (j = 0; j < filas; j++)
      fscanf(fp, "%lf", vect + i + (j * columnas));

Un saludo


« Última modificación: 28 Noviembre 2011, 18:03 por rir3760 » En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
consustas en columnas y filas (de una base de datos)
PHP
DJmixmancar 10 2,457 Último mensaje 3 Julio 2008, 22:16
por sirdarckcat
Sumar filas y columnas matriz
Programación C/C++
markosliveup 2 4,225 Último mensaje 26 Marzo 2010, 20:59
por markosliveup
eliminar filas y columnas en java
Java
sauce19 3 1,445 Último mensaje 4 Septiembre 2011, 19:48
por [Case]
Programa en C sharp que genera un cuadrado magico , suma sus filas y columnas
.NET
david_quiroz19 0 689 Último mensaje 13 Noviembre 2011, 00:15
por david_quiroz19
Obtener size() de columnas y filas de una matriz
Programación C/C++
Stone20 1 179 Último mensaje 15 Abril 2012, 13:15
por Stone20
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines