Dev - C++ - Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

 
Vista:
Imágen de perfil de Jorge Jhonnyer
Val: 8
Ha disminuido su posición en 7 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

Publicado por Jorge Jhonnyer (4 intervenciones) el 25/09/2018 20:35:05
Resulta que en un punto del ejercicio me pide que imprima un cliente por posición del vector. en mi codigo se puede registrar y mostrar pero no logro hacer el punto anterios alguin me podria ayudar por favor?

Codigo:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <conio.h>
#include<stdio.h>
struct cliente{
	int codigo;
	char nombre[15];
	char apellido[20];
	int celular;
	char ciudad[20];
	int edad;
}clientes[5];
int x;
 
ingresar(){
 
	printf("Cuantos clientes desea ingresar:\n");
	scanf("%d",&x);
	if( x >= 0){
		for(int i=0; i<x; i++){
			printf("Por favor ingresa el codigo del cliente: %d\n",i+1);
			scanf("%d",&clientes[i].codigo);
			printf("Por favor ingresa el nombre del cliente: %d\n",i+1);
			scanf("%s",clientes[i].nombre);
			printf("Por favor ingresa el apellido del cliente: %d\n",i+1);
			scanf("%s",clientes[i].apellido);
			printf("Por favor ingresa el celular del cliente: %d\n",i+1);
			scanf("%d",&clientes[i].celular);
			printf("Por favor ingresa la ciudad del cliente: %d\n",i+1);
			scanf("%s",clientes[i].ciudad);
			printf("Por favor ingresa la edad del cliente: %d\n",i+1);
			scanf("%d",&clientes[i].edad);
		}
	}
}
 
imprimirTodos(){
	for(int i=0; i<x; i++){
		printf("\nCodigo del cliente:\n",i+1);
		printf("%d",clientes[i].codigo);
		printf("\nNombre del cliente:\n",i+1);
		printf("%s",clientes[i].nombre);
		printf("\nApellido del cliente:\n",i+1);
		printf("%s",clientes[i].apellido);
		printf("\nCelular del cliente:\n",i+1);
		printf("%2.i",clientes[i].celular);
		printf("\nCiudad del cliente:\n",i+1);
		printf("%s",clientes[i].ciudad);
		printf("\nEdad del cliente:\n",i+1);
		printf("%d",clientes[i].edad);
	}
}
 
buscarCliente(){
	int encontrar;
	printf("Buscar cliente en la posicion: ");
	scanf("%d",&encontrar);
	if(entontrar == i){
			for(int i=0; i<x; i++){
		printf("\nCodigo del cliente:\n",i+1);
		printf("%d",clientes[i].codigo);
		printf("\nNombre del cliente:\n",i+1);
		printf("%s",clientes[i].nombre);
		printf("\nApellido del cliente:\n",i+1);
		printf("%s",clientes[i].apellido);
		printf("\nCelular del cliente:\n",i+1);
		printf("%2.i",clientes[i].celular);
		printf("\nCiudad del cliente:\n",i+1);
		printf("%s",clientes[i].ciudad);
		printf("\nEdad del cliente:\n",i+1);
		printf("%d",clientes[i].edad);
	}
}
 
main(){
 
	printf("\n1. Ingresar los clientes");
	printf("\n2. imprimir todos los clientes");
	printf("\n3. imprimir un cliente por su posicion en el vector");
	printf("\n4. salir del programa\n");
	int num;
	scanf("%i",&num);
	switch(num){
		case 1:
			ingresar();
			main();
			break;
		case 2:
			imprimirTodos();
			main();
			break;
		case 3:
			buscarCliente();
			main();
			break;
 
		default:
 
			break;
	}
}
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
Imágen de perfil de abZer0x
Val: 33
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

Publicado por abZer0x (10 intervenciones) el 26/09/2018 00:27:51
Hola, hice algunas modificaciones en tu programa. Agregue una variable llamada actual_cliente la cual se encarga de llevar la cuenta de los clientes ya ingresados en el array, es decir, los que realmente se ingresaron, esto permite además que cuando imprimas no se muestren las posiciones vacías del array.
Nos comentas.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <conio.h>
#include <stdio.h>
#define CANTIDAD_DE_CLIENTES 5
 
struct cliente
{
    int codigo;
    char nombre[15];
    char apellido[20];
    int celular;
    char ciudad[20];
    int edad;
} clientes[CANTIDAD_DE_CLIENTES];
 
int actual_cliente = 0; // Lleva la cuenta de los clientes ya ingresados
 
int main()
{
    int num;
    do
    {
        printf("\n1. Ingresar los clientes");
        printf("\n2. imprimir todos los clientes");
        printf("\n3. imprimir un cliente por su posicion en el vector");
        printf("\n4. salir del programa\n");
        printf("Ingresa tú opción: ");
        scanf("%i", &num);
        switch (num)
        {
        case 1:
            ingresar();
            break;
        case 2:
            imprimirTodos();
            break;
        case 3:
            buscarCliente();
            break;
        case 4:
            printf("Saliendo del programa...");
            break;
        default:
            printf("La opción ingresada no es valida\n");
        }
    } while (num != 4);
    return 0;
}
 
void ingresar()
{
    int x;
    printf("Cuantos clientes desea ingresar:\n");
    scanf("%d", &x);
    if (x >= 0 && (CANTIDAD_DE_CLIENTES - actual_cliente) > 0)
    {
        for (int i = actual_cliente; i < actual_cliente + x; i++)
        {
            printf("Por favor ingresa el codigo del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].codigo);
            printf("Por favor ingresa el nombre del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].nombre);
            printf("Por favor ingresa el apellido del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].apellido);
            printf("Por favor ingresa el celular del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].celular);
            printf("Por favor ingresa la ciudad del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].ciudad);
            printf("Por favor ingresa la edad del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].edad);
        }
 
        actual_cliente += x;
    }
}
 
void imprimirTodos()
{
    if (actual_cliente > 0)
    {
        for (int i = 0; i < actual_cliente; i++)
        {
            printf("\nCodigo del cliente:\n", i + 1);
            printf("%d", clientes[i].codigo);
            printf("\nNombre del cliente:\n", i + 1);
            printf("%s", clientes[i].nombre);
            printf("\nApellido del cliente:\n", i + 1);
            printf("%s", clientes[i].apellido);
            printf("\nCelular del cliente:\n", i + 1);
            printf("%2.i", clientes[i].celular);
            printf("\nCiudad del cliente:\n", i + 1);
            printf("%s", clientes[i].ciudad);
            printf("\nEdad del cliente:\n", i + 1);
            printf("%d", clientes[i].edad);
        }
    }
    else
    {
        printf("No se ingresaron clientes\n");
    }
}
 
void buscarCliente()
{
    int posicion = 0;
    printf("Ingresa la posición a buscar: ");
    scanf("%d", &posicion);
    if (posicion >= 0 && posicion <= actual_cliente)
    {
        printf("\nCodigo del cliente:\n", posicion + 1);
        printf("%d", clientes[posicion].codigo);
        printf("\nNombre del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].nombre);
        printf("\nApellido del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].apellido);
        printf("\nCelular del cliente:\n", posicion + 1);
        printf("%2.i", clientes[posicion].celular);
        printf("\nCiudad del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].ciudad);
        printf("\nEdad del cliente:\n", posicion + 1);
        printf("%d", clientes[posicion].edad);
    }
    else
    {
        printf("La posición ingresada no es valida, o no hay un cliente aún en esa posición");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jorge Jhonnyer
Val: 8
Ha disminuido su posición en 7 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

Publicado por Jorge Jhonnyer (4 intervenciones) el 26/09/2018 23:46:40
Disculpa pero me aparece el siguiente error al intentar ejecutar el codigo, y perdon por molestar apenas estoy aprendiendo c++

Code
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
Imágen de perfil de abZer0x
Val: 33
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

Publicado por abZer0x (10 intervenciones) el 27/09/2018 00:11:42
Disculpa el error fue mio, el problema es que las funciones estan definidas despues de la función main, por lo que para solucionarlo puedes poner las funciones antes de esta o incluir los prototipos de la función al inicio del código.
Código actualizado
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <conio.h>
#include <stdio.h>
#define CANTIDAD_DE_CLIENTES 5
 
// Prototipos de la funciones
void ingresar();
void imprimirTodos();
void buscarCliente();
struct cliente
{
    int codigo;
    char nombre[15];
    char apellido[20];
    int celular;
    char ciudad[20];
    int edad;
} clientes[CANTIDAD_DE_CLIENTES];
 
int actual_cliente = 0; // Lleva la cuenta de los clientes ya ingresados
 
int main()
{
    int num;
    do
    {
        printf("\n1. Ingresar los clientes");
        printf("\n2. imprimir todos los clientes");
        printf("\n3. imprimir un cliente por su posicion en el vector");
        printf("\n4. salir del programa\n");
        printf("Ingresa tú opción: ");
        scanf("%i", &num);
        switch (num)
        {
        case 1:
            ingresar();
            break;
        case 2:
            imprimirTodos();
            break;
        case 3:
            buscarCliente();
            break;
        case 4:
            printf("Saliendo del programa...");
            break;
        default:
            printf("La opción ingresada no es valida\n");
        }
    } while (num != 4);
    return 0;
}
 
void ingresar()
{
    int x;
    printf("Cuantos clientes desea ingresar:\n");
    scanf("%d", &x);
    if (x >= 0 && (CANTIDAD_DE_CLIENTES - actual_cliente) > 0)
    {
        for (int i = actual_cliente; i < actual_cliente + x; i++)
        {
            printf("Por favor ingresa el codigo del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].codigo);
            printf("Por favor ingresa el nombre del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].nombre);
            printf("Por favor ingresa el apellido del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].apellido);
            printf("Por favor ingresa el celular del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].celular);
            printf("Por favor ingresa la ciudad del cliente: %d\n", i + 1);
            scanf("%s", clientes[i].ciudad);
            printf("Por favor ingresa la edad del cliente: %d\n", i + 1);
            scanf("%d", &clientes[i].edad);
        }
 
        actual_cliente += x;
    }
}
 
void imprimirTodos()
{
    if (actual_cliente > 0)
    {
        for (int i = 0; i < actual_cliente; i++)
        {
            printf("\nCodigo del cliente:\n", i + 1);
            printf("%d", clientes[i].codigo);
            printf("\nNombre del cliente:\n", i + 1);
            printf("%s", clientes[i].nombre);
            printf("\nApellido del cliente:\n", i + 1);
            printf("%s", clientes[i].apellido);
            printf("\nCelular del cliente:\n", i + 1);
            printf("%2.i", clientes[i].celular);
            printf("\nCiudad del cliente:\n", i + 1);
            printf("%s", clientes[i].ciudad);
            printf("\nEdad del cliente:\n", i + 1);
            printf("%d", clientes[i].edad);
        }
    }
    else
    {
        printf("No se ingresaron clientes\n");
    }
}
 
void buscarCliente()
{
    int posicion = 0;
    printf("Ingresa la posición a buscar: ");
    scanf("%d", &posicion);
    if (posicion >= 0 && posicion <= actual_cliente)
    {
        printf("\nCodigo del cliente:\n", posicion + 1);
        printf("%d", clientes[posicion].codigo);
        printf("\nNombre del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].nombre);
        printf("\nApellido del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].apellido);
        printf("\nCelular del cliente:\n", posicion + 1);
        printf("%2.i", clientes[posicion].celular);
        printf("\nCiudad del cliente:\n", posicion + 1);
        printf("%s", clientes[posicion].ciudad);
        printf("\nEdad del cliente:\n", posicion + 1);
        printf("%d", clientes[posicion].edad);
    }
    else
    {
        printf("La posición ingresada no es valida, o no hay un cliente aún en esa posición");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jorge Jhonnyer
Val: 8
Ha disminuido su posición en 7 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Cordial saludos, sucede que tengo un problema con un ejercicio de struct en c++

Publicado por Jorge Jhonnyer (4 intervenciones) el 27/09/2018 00:24:44
Muchas Gracias :D enserio te lo agradezco demasiado me gustaría aprender a programar así
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