elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Un struct dentro de una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Un struct dentro de una matriz  (Leído 6,388 veces)
freakx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Un struct dentro de una matriz
« en: 13 Enero 2012, 00:34 am »

En la universidad me mandaron una tarea en donde tengo qe crear una matriz de maximo 10 filas y 20 columnas y adentro de cada casillero de la matriz tengo qe guardar tres datos enteros, osea un struct dentro de una matriz


este es el codigo que llevo, todavia trabajo solamente con esas librerias. Quiero que me ayuden a como llenar la matriz con los datos haber si me pueden ayudar


Citar
#include<stdio.h>
#include<stdlib.h>



typedef struct accidente{
    int lesionados;
    int vehiculos;
    int fecha;    
    
 };    

void Llenar(int cruce[][20],int n, int m,accidentes *R)
{
     int i,j;
     for(i=0;i<n;i++)
      {  for(j=0;j<m;j++)
         {
          printf("ingrese numero de lesionados para la interseccion entre [Avenida %d,Calle %d]: ",i,j);

          scanf("%d",&cruce [j].(*R).lesionados);
          
printf("ingrese cantidad de vehiculos involucrados en la interseccion[Avenida %d,Calle %d]: ",i,j);

          scanf("%d",&cruce [j].(*R).vehiculos);
          
printf("ingrese fecha del accidente en la interseccion [Avenida %d,Calle %d]: ",i,j);
        
          scanf("%d",&cruce [j].(*R).fecha);
         }
         }  
}
void Mostrar(int a[][20],int n,int m)
{
     int i,j;
     for(i=0;i<n;i++)
       {  for(j=0;j<m;j++)
         {
          printf("A[%d,%d] = %d\n",i,j,a[j]);
          }
          }
}


int main()

    int cruce[10][20];
    int n,m;

    
    printf("Ingrese cantidad de avenidas : ");
    scanf("%d",&n);
    
    if(n<=10)
   {
    
    printf("Ingrese cantidad de calles : ");
    scanf("%d",&m);
     if(m<=20)
     { Llenar(cruce,n,m,accidente);
       printf("\nMatriz A\n");
       Mostrar(a,n,m);
      }
      {
      else
      printf("ingrese un numero menor a 20  ");    
      }
   }  
   {
   else
   printf("ingrese un numero menor a 10   ");
   }
  
system("PAUSE");

}


« Última modificación: 13 Enero 2012, 01:20 am por freakx » En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Un struct dentro de una matriz
« Respuesta #1 en: 13 Enero 2012, 12:36 pm »

No comprendo muy bien qué preguntas, ¿quieres guardar en la matriz los datos según se vayan introduciendo?, en ese caso debes usar dos bucles anidados como has puesto en tu código:

Código
  1. for(i=0;i<n;i++)
  2.      {  for(j=0;j<m;j++)
  3.         {
  4.          printf("ingrese numero de lesionados para la interseccion entre [Avenida %d,Calle %d]: ",i,j);
  5.  
  6.          scanf("%d",&cruce [j].(*R).lesionados);
  7.  
  8. printf("ingrese cantidad de vehiculos involucrados en la interseccion[Avenida %d,Calle %d]: ",i,j);
  9.  
  10.          scanf("%d",&cruce [j].(*R).vehiculos);
  11.  
  12. printf("ingrese fecha del accidente en la interseccion [Avenida %d,Calle %d]: ",i,j);
  13.  
  14.          scanf("%d",&cruce [j].(*R).fecha);
  15.         }
  16.         }

Pero esto no es correcto:

Código:
&cruce [j].(*R).lesionados

En primer lugar "cruce" es una tabla bidimensional, no puedes dejar uno de los parámetros vacíos asi que debes poner también el número de filas (i):

Código
  1. &cruce[i][j].DATO

No entiendo muy bien qué ese "(*R)", pero no es necesario... a la tabla debes acceder con estos códigos:

Código
  1. cruce[i][j].lesionados
  2. cruce[i][j].vehiculos
  3. cruce[i][j].fecha

Lo cual tampoco te va a funcionar si no defines la tabla como tipo "accidente", es decir, asi:

Código
  1. void Llenar(accidente cruce[10][20],int n, int m,int accidentes) //En la función
  2.  
  3. int main()   //En el main
  4. {
  5.  
  6.    accidente cruce[10][20];
  7. .
  8. .
  9. .
  10. }

Otra cosa es que usas variables que no has declarado, como por ejemplo la tabla "a" no está declarada en el main ni la variable "accidentes" (la primera se la pasas a la función "Mostrar" y la segunda a la función "Llenar").

Y por último en los codicionales haces lo siguiente:

Código
  1. If
  2. {
  3. //Instrucciones
  4. }
  5. {
  6. else
  7. //Instrucciones
  8. }

El else no va dentro de las llaves, la estructura es siempre:

Código
  1. Instrucción principal
  2. {
  3. Instrucciones que la componen.
  4. }

Con esto el programa funciona correctamente. Te he anotado los fallos pero los has cometido en varios lados del algoritmo, asi que revísalo entero.

Saludos.


« Última modificación: 13 Enero 2012, 12:51 pm por Alien-Z » En línea

freakx

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Un struct dentro de una matriz
« Respuesta #2 en: 23 Enero 2012, 02:16 am »

Muchas gracias me sirvio muchisimoooo :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines