C/Visual C - Arreglos de estructuras y funciones.

 
Vista:
sin imagen de perfil

Arreglos de estructuras y funciones.

Publicado por Persian (11 intervenciones) el 16/06/2017 07:07:28
Buenas, he estado hace muchas horas complicado con un ejercicio de "estruturas de datos complejos".

Hay que hacer una matriz de 3x4 y con una estructura poner: nombre, rut y edad (si es mayor o menor a 18)
hay que hacer 3 funciones:
1) Una funcion que perimita registrar los datos de las personas.(lo hice)
2) Una funcion que muestre en pantalla todos los datos ingresados de cada persona.
3) Una funcion que muestre solo a las personas menores de 18.

Preferi no poner mis codigos ya que son muchos distintos y que no llegan al resultado.

Espero que pueda ser resuelta esta duda, les estaria muy agradecido. Estare atento a cualquier respuesta.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Arreglos de estructuras y funciones.

Publicado por dario (11 intervenciones) el 16/06/2017 16:03:55
Hola, podrias poner el codigo del punto Nro 1 para ver como has hecho el struct.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Arreglos de estructuras y funciones.

Publicado por Persian (11 intervenciones) el 16/06/2017 19:15:46
Aqui tengo el codigo con la funcion 1 lista, falta la funcion 2 donde no puedo mostrar los datos correctos que ingrese en la funcion 1.
Saludos.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
typedef struct {
	char nombre[10];
	int rut;
	int edad;
}datos;
 
int main(){
	datos nut;
	datos_personas(&nut);
 
}
 
void datos_personas(datos *nut){
	int i,j;
	for(i=0;i<3;i++){
		for(j=0;j<4;j++){
			printf("%d.%d Ingrese el nombre: ",i+1,j+1);
			scanf("%s",&nut->nombre);
			printf("%d.%d Ingrese el rut: ",i+1,j+1);
			scanf("%d",&nut->rut);
			printf("%d.%d Ingrese la edad: ",i+1,j+1);
			scanf("%d",&nut->edad);
			printf("\n");
		}
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Arreglos de estructuras y funciones.

Publicado por Diego (150 intervenciones) el 17/06/2017 05:07:28
¿Estas seguro que estar recorriendo la matriz creada?. En la linea 19 comienza a grardar los datos en la posicion (0,0), Luego en la segunda vuelta del iterador "for", ¿Que valor tiene el puntero a la estructura de la linea 19?

Yo digo que apunta a la misma posicion en todos los ciclos de ambos iteradores "for", y producto de eso solo guarda los ultimos datos ingresados ya que se sobre escriben. Si me quivoco haganmelo saber.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Arreglos de estructuras y funciones.

Publicado por sea (11 intervenciones) el 17/06/2017 05:16:32
Asi es. Mi duda es que como mostrar todos los datos ingresados sin que se sobreescriban, quiero guardar cada dato, en cada espacio del vector y mostrarlos en otra funcion.
La verdad creo que es algo simple pero que aun no encuentro la solucion.
Espero que alguien me pueda iluminar un poco jaja.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Arreglos de estructuras y funciones.

Publicado por dario (11 intervenciones) el 17/06/2017 11:12:23
Te dejo este codigo sin funciones, ya tu lo arreglas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
 
struct {
	char nombre[10];
	int rut;
	int edad;
} datos[3][4];
 
int main(){
    int i,j;
 
	for(i=0;i<3;i++){
		for(j=0;j<4;j++){
			printf("%d.%d Ingrese el nombre: ",i+1,j+1);
			scanf("%s",datos[i][j].nombre);
			printf("%d.%d Ingrese el rut: ",i+1,j+1);
			scanf("%d",&datos[i][j].rut);
			printf("%d.%d Ingrese la edad: ",i+1,j+1);
			scanf("%d",&datos[i][j].edad);
			printf("\n");
        }
    }
 
    //mostrar datos
    for (i=0; i<2; i++) {
        for (j=0; j<2; j++) {
            printf("Nombre: %s\n",datos[i][j].nombre);
            printf("Su numero de RUT es: %d\n",datos[i][j].rut);
            printf("Edad: %d\n",datos[i][j].edad);
            printf("\n");
        }
    }
 
    //mayores de 18 anios
    for (i=0; i<2; i++) {
        for (j=0; j<2; j++) {
            if (datos[i][j].edad > 18) {
                printf("Nombre: %s\n",datos[i][j].nombre);
                printf("Su numero de RUT es: %d\n",datos[i][j].rut);
                printf("Edad: %d\n",datos[i][j].edad);
                printf("\n");
            }
        }
    }
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de gregory
Val: 73
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Arreglos de estructuras y funciones.

Publicado por gregory (24 intervenciones) el 25/06/2017 00:06:26
eso es muy lento. Primero me podrian decir para que es la matriz. Los struct supera a las matrices por lo que no entiendo porque hacer un struct matriz cuando cada elemento dentro un struct puede ser una matriz.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar