C/Visual C - Pueden ayudarme con un programa en c "Estructuras".

   
Vista:

Pueden ayudarme con un programa en c "Estructuras".

Publicado por Miguel Mont imre027@gmail.com (1 intervención) el 16/09/2015 21:14:45
Hola buen dia amigos!
He realizado este programa en lenguaje C, pero tengo un problema al final en la tercera funcion "void modificar" quiero seleccionar a traves de if´s anidados, una opcion para poder modificar los datos previamente ingresados en mi programa en la funcion de "void capturar" sin embargo mis if´s anidados no funcionan y unicamente modifica el nombre, es decir el que se encuentra en el primer if y a los otros dos if´s los ignora.

Espero puedan ayudarme, gracias de antemano!

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
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include <string.h>
 
 
struct datos{
    char nombre [20];
    char apellidos [20];
    int edad;
}fijo;
 
void capturar ();
void visualizar ();
void modificar();
 
 
int main (){
 
    capturar ();
    visualizar ();
    modificar();
   system("PAUSE");
    return 0;
}
 
void capturar(){
 
    printf("\n Ingresa el nombre: ");
    fflush(stdin);
    gets(fijo.nombre);
    printf("\n Ingresa los apellidos: ");
    fflush(stdin);
    gets(fijo.apellidos);
    printf("\n Ingresa la edad: ");
    scanf("%d",&fijo.edad);
}
void visualizar(){
 
    printf("\n Nombre: %s", fijo.nombre);
    printf("\n Apellidos: %s", fijo.apellidos);
    printf("\n Edad: %d \n ", fijo.edad);
    printf("\n****************************************\n");
}
 
 
void modificar(){
    int opc;
 
    printf("\n Ingrese el dato que desea modificar: ");
    printf("\n 1.Nombre... ") ;
    printf("\n 2.Apellidos... " );
    printf("\n 3.Edad... \n" );
    printf("\n ingrese opcion: ");
    scanf("%d", &opc);
 
    if(opc=1){
 
    printf("\n Ingrese el nuevo nombre: ");
    fflush(stdin);
    gets(fijo.nombre);
    printf("\n Nombre: %s", fijo.nombre);
    printf("\n Apellidos: %s", fijo.apellidos);
    printf("\n Edad: %d", fijo.edad);
    }
else if (opc=2){
 
    printf("\n ingrese los nuevos apellidos: ");
    fflush(stdin);
    gets(fijo.apellidos);
    printf("\n Nombre: %s", fijo.nombre);
    printf("\n Apellidos: %s", fijo.apellidos);
    printf("\n Edad: %d", fijo.edad);
    }
else if (opc=3){
 
    printf("\n ingrese la nueva edad: ");
    scanf("%d",&fijo.edad);
    printf("\n Nombre: %s", fijo.nombre);
    printf("\n Apellidos: %s", fijo.apellidos);
    printf("\n Edad: %d", fijo.edad);
 
}
}
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

Pueden ayudarme con un programa en c "Estructuras".

Publicado por Tom (479 intervenciones) el 16/09/2015 23:24:58
Debes distinguir entre "=" y "==" en el if. Repasa.

http://www.cprogramming.com/tutorial/c/lesson2.html
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

Pueden ayudarme con un programa en c "Estructuras".

Publicado por Luis (2 intervenciones) el 17/09/2015 03:42:51
Estás confundiendo el operador de asignación = con el operador de igualdad ==
Corrige, en vez de hacer esto: if (opc = 1)
Haz esto: if (opc == 1)
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

Pueden ayudarme con un programa en c "Estructuras".

Publicado por aguml (173 intervenciones) el 18/09/2015 01:38:44
Además ese es un claro caso donde es mejor usar un switch.
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