C/Visual C - Ayuda con arrays con for

 
Vista:

Ayuda con arrays con for

Publicado por jasantonio (5 intervenciones) el 09/04/2018 17:57:56
Hola. Tengo una duda que me trae de cabeza...a ver. Por ejemplo, tengo 10 arrays. En cada uno voy a meter un número de aparatos que voy a fabricar. Como máximo podré meter 10 aparatos porque tengo 10 arrays. Pero como hago si quiero meter menos?...Me explico mal, por ejemplo:

Introduce número de aparatos a fabricar:
-Introduces 3
Entonces quiero usar el array 0, el array 1 y el array 2.

Si vuelvo a empezar y digo

Introduce número de aparatos a fabricar:
-Introduces 5
Entonces quiero usar el array 0, el array 1 y el array 2,array 3 array 4.

Y quiero hacerlo con un bucle for. El código que pongo es este:

Primero declaro 10 arrays, de los cuales utilizaré desde 1 hasta 10, según diga el usuario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char aparato0[20],aparato1[20],aparato2[20],aparato3[20],aparato4[20],aparato5[20],aparato6[20],aparato7[20],aparato8[20],aparato9[20];
 
//Introducir los nombres de los aparatos que se van a fabricar:
 
printf ("Introduce el numero de aparatos se van a fabricar: (Maximo 10)\n");
printf ("Aparatos a fabricar)_ \n");
 
scanf ("%i", &aparatos);
 
	for (z = 0 ; z < aparatos; z++) {
 
	  	printf ("\n\n");
		printf(" Nombre del Aparato %d : ",z);
		fgets(aparato[z] ,20 ,stdin);
    	printf ("\n\n");
	}

Espero que se vea lo que quiero hacer, en función del número de aparatos que digo que voy a fabricar, paso esas veces por el bucle para utilizar ese mismo número de arrays, pero no me deja y no sé cómo hacerlo, espero que me podais ayudar....Como siempre, muchas gracias..!!
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

Ayuda con arrays con for

Publicado por dario (29 intervenciones) el 10/04/2018 05:48:59
Hola, esto es lo que buscas.
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>
#define NUMAPARATOS 10 //maximo numero de aparatos
 
int main() {
 
    char aparatos[30][NUMAPARATOS]; //nombre del aparato
    int cantAparatos; //cantidad de aparatos
    int i; // para bucles
 
    printf("Introduce el numero de aparatos a fabricar (maximo = %d): ",NUMAPARATOS);
    scanf("%d",&cantAparatos);
 
    for (i=0; i<cantAparatos; i++) {
        printf("Aparato # %d",i+1);
        printf("\nNombre del aparato: ");
        scanf("%s",aparatos[i]);
    }
 
    printf("\n");
    //apartos almacenados
    for (i=0; i<cantAparatos; i++) {
        printf("Aparato %d: %s ",i+1,aparatos[i]);
        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
0
Comentar

Ayuda con arrays con for

Publicado por jasantonio (5 intervenciones) el 12/04/2018 13:00:19
Hola Darío, muchísimas gracias por tu respuesta. Me has solucionado el tema, pero a raíz de tu solución me surgen unas dudas que pongo en comentarios junto con el código, por si, por favor, me pudieras responder...Gracias..!!

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
#include <stdio.h>
 
 
#define NUMAPARATOS 10 //maximo numero de aparatos
 
int main() {
 
    char aparatos[30][NUMAPARATOS];
 
	//¿Esto es una matriz de tipo char?...Yo sabía que un vector tipo char es un string...pero una 
	//matriz tipo char ni idea. ¿Porqué [30]?
 
    int cantAparatos;
    int i;
 
    printf("Introduce el numero de aparatos a fabricar (maximo = %d): ",NUMAPARATOS);
    scanf("%d",&cantAparatos);
 
    for (i=0; i < cantAparatos; i++) {
        printf("Aparato # %d",i+1);
        printf("\nNombre del aparato: ");
        scanf("%s",aparatos[i]); //Este string no lo tengo que declarar antes de usarlo, cuando hago la declaración 
        //de variables?...
        /*
        Otra pregunta con el string...Sería así su funcionamiento??..Por ejemplo....
        
        Posición 0: Lavadora
        Posición 1: Secadora
        ...
        Posición 9:Horno

        Pero si es así, no me cuadra, porque tenía entendido que el string funcionaba así, 
		si meto por ejemplo "Lavadora", es string almacenaría así:

        Posición 0: L
        Posición 1: a
        Posición 2: v
        Posición 3: a
        Posición 4: d
        Posición 5: o
        Posición 6: r
        Posición 7: a
        Posición 8: \0

      */
    }
 
    printf("\n");
    //apartos almacenados
    for (i=0; i < cantAparatos; i++) {
        printf("Aparato %d: %s ",i+1,aparatos[i]);
        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
0
Comentar

Ayuda con arrays con for

Publicado por jasantonio (5 intervenciones) el 12/04/2018 13:29:08
Un momento....!!!!

En la solución que me planteas, si en vez de:

char aparatos[30][NUMAPARATOS];

Hago

char aparatos[NUMAPARATOS][30];

Entonces sí me cuadra, y cada vez que guardo en el string aparatos[i], estoy guardando en la fila 0 de la matriz aparatos[NUMAPARATOS][30]; el primer aparato (para el cual tengo 30 caracteres), el segundo aparato lo guardaría en la fila 1 de la matriz aparatos[NUMAPARATOS][30]; para el cual tendría 30 caracteres, etc....

Por favor, dime si es así..!!...Ojalá sea así, porque si no, me voy a volver loco...

Muchas gracias..!!
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

Ayuda con arrays con for

Publicado por dario (29 intervenciones) el 12/04/2018 14:08:41
Por favor ve a la seccion chat para chatear mejor.
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

Ayuda con arrays con for

Publicado por dario (29 intervenciones) el 12/04/2018 14:28:52
estoy en la seccion C-VisualC
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

Ayuda con arrays con for

Publicado por dario (29 intervenciones) el 12/04/2018 14:41:42
Respuesta a tu pregunta:
En C no existe el tipo de dato string, solo hay tipo char (que guarda un caracter), para crear un string debes usar un arreglo de caracteres.
Por ejemplo:

........
.......
char nombres[20];
......
.....
No te almacena 20 nombres sino te almacena 1 nombre de 20 caracteres.

Para almacenar varios string tienes que hacerlo asi:
char <variables>[cant_caracteres][tamano del vector];
ejm:
char nombres[30][10]; esto te almacena 10 nombres de 30 caracteres cada uno.

Espero que se hayan aclarado tus dudas.
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