C/Visual C - Que falla en la línea 60

 
Vista:
sin imagen de perfil

Que falla en la línea 60

Publicado por Jesusito (12 intervenciones) el 11/12/2017 15:03:33
Al introducir este código (en realidad viene con mucho más codigo, pero que realmente no tiene que ver con lo que realizo en esta parte) se produce un fallo en la línea 60:
Me da el error : |60| expected expression before '{' token

Mi compilador es GNU GCC Compiler y estoy haciendo un proyecto de C en Code::Blocks.

La cosa es que he estado intentando ver que falla ahí, pero no llego a comprender que le falta o sobra.
Si existe otra manera de obtener el vector struct VRec, y que pida por pantalla los valores, por favor, mostradmelo.


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
#include <stdio.h>
#define Dim 4
 
 
struct rectangulo {
    double base;
    double altura;
};
 
 
 
int main()
{
 
    struct rectangulo rec1, rec2, rec3, rec4;
    struct rectangulo VRec[Dim];
 
 
    do{
        printf("Introduzca la base del rectangulo 1: ");
        scanf("%lf", &rec1.base);
    } while (rec1.base < 0);
 
    do{
        printf("Introduzca la altura del rectangulo 1: ");
        scanf("%lf", &rec1.altura);
    } while (rec1.altura < 0);
 
    do{
        printf("Introduzca la base del rectangulo 2: ");
        scanf("%lf", &rec2.base);
    } while (rec2.base < 0);
 
    do{
        printf("Introduzca la altura del rectangulo 2: ");
        scanf("%lf", &rec2.altura);
    } while (rec2.altura < 0);
 
    do{
        printf("Introduzca la base del rectangulo 3: ");
        scanf("%lf", &rec3.base);
    } while (rec3.base < 0);
 
    do{
        printf("Introduzca la altura del rectangulo 3: ");
        scanf("%lf", &rec3.altura);
    } while (rec3.altura < 0);
 
    do{
        printf("Introduzca la base del rectangulo 4: ");
        scanf("%lf", &rec4.base);
    } while (rec4.base < 0);
 
    do{
        printf("Introduzca la altura del rectangulo 4: ");
        scanf("%lf", &rec4.altura);
    } while (rec4.altura < 0);
 
 
    VRec[Dim] = {rec1, rec2, rec3, rec4};
}



Muchas gracias muyayos
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: 60
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Que falla en la línea 60

Publicado por Yamil Bracho (26 intervenciones) el 11/12/2017 15:20:43
Estas dimensionado VREC de 4 elementos y en C/C++ los arreglos comienzan desde 0, es decir, tienes los elementos de 0 a 3 y no 4 como estas especificando. Tendrias que hacer algo como

VRec[0] = rec1;
VRec[1] = rec2;
VRec[2] = rec3;
VRec[3] = rec4;
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
sin imagen de perfil

Que falla en la línea 60

Publicado por Jesusito (12 intervenciones) el 11/12/2017 19:24:02
Muchas gracias, ahora con el codigo que me has dado si que compila
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

Que falla en la línea 60

Publicado por Tom (619 intervenciones) el 11/12/2017 16:14:44
Lo que haces en la línea 60, sería válido en la declaración, pero no lo es en asignación (como tú lo estás haciendo).
1
struct rectangulo VRec[Dim] = {rec1, rec2, rec3, rec4};
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
sin imagen de perfil

Que falla en la línea 60

Publicado por Jesusito (12 intervenciones) el 11/12/2017 19:21:34
Muchas gracias, especialmente mi problema era que lo veía bien porque había hecho cosas parecidas en el tema de vectores, y ahora si que veo por qué está mal
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