C/Visual C - No me deja ingresar los datos

 
Vista:

No me deja ingresar los datos

Publicado por Julian (11 intervenciones) el 17/02/2019 21:56:46
Tengo un struct medio largo donde lo que intento ingresar son el nombre, estado, edad y salario de cuatro personas, Cuando ingreso algo, primero que no lee el scanf y el segundo es que saltea todo el programa y lo termina mostrando las lineas de texto vacías donde deberían estar las variable. El struct esta hecho en Qt, y solo querría que me dijeran si escribí algo mal, les voy a dejar el programa completa aca en el texto: Lenguaje C

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
struct punto {
    char x[20];
    char y[20];
 
    int a;
    float b;
};
 
int main(void)
{
    struct punto P;
    struct punto Q;
    struct punto R;
    struct punto Z;
 
    printf("Ingrese los datos de Julian:\n");
    scanf("Nombre: %s", &P.x);
    scanf("Estado: %s", &P.y);
    scanf("Edad:    %d", &P.a);
    scanf("Salario: %f", &P.b);
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %f\n", P.x, P.y, P.a, P.b);
 
    printf("Ingrese los datos de Jorge:\n");
    scanf("Nombre: %s", &Q.x);
    scanf("Estado: %s", &Q.y);
    scanf("Edad: %d", &Q.a);
    scanf("Salario: %f", &Q.b);
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %f\n", Z.x, Z.y, Z.a, Z.b);
 
    printf("Ingrese los datos de Julio:\n");
    scanf("Nombre: %s", &R.x);
    scanf("Estado: %s", &R.y);
    scanf("Edad: %d", &R.a);
    scanf("Salario: %f", &R.b);
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %f\n", R.x, R.y, R.a, R.b);
 
    printf("Ingrese los datos de Damaris:\n");
    scanf("Nombre: %s", &Z.x);
    scanf("Estado: %s", &Z.y);
    scanf("Edad: %d", &Z.a);
    scanf("Salario: %f", &Z.b);
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %f\n", Z.x, Z.y, Z.a, Z.b);
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 Alfil
Val: 22
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

No me deja ingresar los datos

Publicado por Alfil (9 intervenciones) el 18/02/2019 00:13:04
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
#include <stdio.h>
 
struct punto {
    char x[20];
    char y[20];
 
    int a;
    float b;
};
 
int main()
{
 
    struct punto P;
    struct punto Q;
    struct punto R;
    struct punto Z;
 
 
    printf("Ingrese los datos de Julian:\n");
    printf( "Nombre: " );
    scanf( "%s", P.x );
    printf( "Estado: " );
    scanf( "%s", P.y );
    printf("Edad: " );
    scanf( "%d", &P.a );
    printf( "Salario: " );
    scanf( "%f", &P.b );
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %.2f\n", P.x, P.y, P.a, P.b);
 
 
    printf("Ingrese los datos de Jorge:\n");
    printf( "Nombre: " );
    scanf( "%s", Q.x );
    printf( "Estado: " );
    scanf( "%s", Q.y );
    printf("Edad: " );
    scanf( "%d", &Q.a );
    printf( "Salario: " );
    scanf( "%f", &Q.b );
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %.2f\n", Q.x, Q.y, Q.a, Q.b);
 
    printf("Ingrese los datos de Julio:\n");
    printf( "Nombre: " );
    scanf( "%s", R.x );
    printf( "Estado: " );
    scanf( "%s", R.y );
    printf("Edad: " );
    scanf( "%d", &R.a );
    printf( "Salario: " );
    scanf( "%f", &R.b );
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %.2f\n", R.x, R.y, R.a, R.b);
 
    printf("Ingrese los datos de Damaris:\n");
    printf( "Nombre: " );
    scanf( "%s", Z.x );
    printf( "Estado: " );
    scanf( "%s", Z.y );
    printf("Edad: " );
    scanf( "%d", &Z.a );
    printf( "Salario: " );
    scanf( "%f", &Z.b );
    printf("-Nombre: %s\n Estado: %s\n Edad: %d\n Sueldo: %.2f\n", Z.x, Z.y, Z.a, Z.b);
 
 
}
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

Gracias

Publicado por Julian (11 intervenciones) el 18/02/2019 00:43:13
No lleva ampersan (&) en los chars ni los tamaños [20], el Return 0 tampoco? Bueno: MUCHAS GRACIAS! Perdona que tuvieras que hacer eso,
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: 72
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Gracias

Publicado por juanki (31 intervenciones) el 18/02/2019 22:12:18
Hola

El return 0 sí es necesario, la función main está declarada como int main(), por lo tanto espera que se devuelva un valor cuando termine.

Normalmente ese valor de retorno se usa para indicar si todo salió bien o hubo algún error.

Posiblemente tu compilador solo te de un aviso(warning) y te permita compilar el programa, pero es bueno acostumbrarse a hacer las cosas bien :)

Un saludo.
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 Alfil
Val: 22
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

No me deja ingresar los datos

Publicado por Alfil (9 intervenciones) el 18/02/2019 05:53:07
Fijate también en como se utiliza scanf y printf
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