Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Purple rhino

#1
Buenas noches, estoy haciendo el código para un programa que permita hacer 10 registros  y poder volver al menú cuando así se quiera y de igual forma desde el menú acceder a los datos que ya han sido registrados previamente, el programa funciona bien al ingresar y guardar los datos de los 2 primeros registros, pero a partir de ahí cada que quiero realizar un nuevo registro se guarda siempre como si fuera el segundo y de ahí no pasa, mi duda es ¿Por qué no sigue avanzando en los registros y siempre aparece el 2?

Este es el código, ojalá me puedan ayudar

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct {
char NO[28], SE;
int ED, SA;
}paciente;
paciente PAC[10];
main (){
int ME, i, OP, s;
Inicio:
printf("MENU PRINCIPAL\n"),
printf("\n1. Ingresar nuevos datos\n"),
printf("2. Consultar pacientes registrados\n"),
printf("3. Salir\n"),
printf("\nElija la opcion que desea: "),
scanf("%d", &ME);
switch (ME){
case 1:
do{
        system("cls");
        printf("INGRESAR NUEVOS DATOS\n");
        printf("\n%i. Datos del paciente",i+1);
printf("\n");
fflush(stdin);
printf("Nombre y apellido paterno: ");
gets(PAC[i].NO);
fflush(stdin);
printf("Edad: ");
scanf("%d",&PAC[i].ED);
fflush(stdin);
printf("Sexo: ");
scanf("%c",&PAC[i].SE);
fflush(stdin);
printf("Condicion de salud: ");
scanf("%d",&PAC[i].SA);
fflush(stdin);
printf("\nLos datos del paciente han sido ingresados.");
printf("\nDesea regresar al menu?\n1.Regresar al menu / 2.Salir: ");
    scanf("%d", &OP);}
    while(i=0,i<10,i++);
    switch (OP){
    case 1:
    system("cls");
    goto Inicio;
    break;
    case 2:
    system("cls");
            printf("\nUSTED HA SALIDO DE LA BASE DE DATOS DEL HOSPITAL GENERAL.\n");
            system("pause");
            return 0;
            break;}
case 2:
system("cls");
printf("DATOS DE LOS PACIENTES\n");
    for(i=0;i<10;i++){
    printf("\n");
    printf("Paciente%d\n",(i+1));
        printf("Nombre y apellido paterno:%s\n",PAC[i].NO);
        printf("Edad:%d\n",PAC[i].ED);
        printf("Sexo:%c\n",PAC[i].SE);
        printf("Condicion de salud:%d\n",PAC[i].SA);
}
    break;
    case 3:
    system("cls");
printf("\nUSTED HA SALIDO DE LA BASE DE DATOS DEL HOSPITAL GENERAL.");
break;}
getchar();
}
#2
Hola a todos, soy principiante y estoy realizando un menú de opciones y tengo un switch-case en el cual estoy poniendo 5 cases distintos, hasta ahí todo va bien, pero en uno de los case necesito dar la opción a que elijan entre 3 cantidades y según la opción que elijan pues hará una resta y dará el resultado, dentro de ese case puse un while para la opción de la primera cantidad y efectivamente realiza la resta y da el resultado, el problema es que he intentado agregar las opciones para las otras dos cantidades y SIEMPRE realiza lo mismo como si escogiera la primera opción. ¿Qué tipo de estructura de control me funcionaría mejor para dar 3 opciones dentro de un case?. AYUDA POR FAVOR.
#3
Hola, la pregunta es un tanto boba pero realmente soy 100% principiante y aunque hasta el momento me va bien con los códigos, aún me fallan algunas cosas del diagrama de flujo, por ejemplo, si en el código tengo system("cls"), ¿es necesario también reflejarlo en el diagrama de flujo? y si es así, ¿cuál es la manera correcta de representarlo en el diagrama? gracias de antemano.