Programación General > C/C++

 Duda vectores y matrices

<< < (2/2)

pabloarg:
Ya casi lo tengo listo, pero no se porque al terminar la carga de datos con numero de pedido =0, no me ejecuta las opciones sino que vuelve al codigo: Ayuda !


--- Código: C ---#include<stdio.h>#include<conio.h> int mcant[5][13]={0}, vped[7]={0},vcant[5]={0};int c11=0,ctot=0,numped=0,na=0,mayor=0,mes,dest,may,men,i,j;float vra[7]={0},vrd[5]={0},vimp[5]={0};char vnumped[5][10]={"","america","europa","asia","africa",}; void main(){vimp[1]=3500;vimp[2]=4000;vimp[3]=4500;vimp[4]=2000; int opcion;clrscr();printf("0- Ingresar datos n");printf("1- Porcentaje que representa lo recaudado por cada agencia sobre el total n");printf("2- Cantidad de pasajeros que viajaron a cada destino en cada mes n");printf("3- Agencia que tom¢ m s pedidos en el mes de julio n");printf("4- Cantidad de pedidos que superaron los 11 pasajeros n");printf("5- Recaudaci¢n por destino n");printf("6- Cantidad de pasajeros transportados por destino n"); scanf("%d",&opcion);switch(opcion){case 0:printf("ingrese el n£mero de pedido: ");scanf("%d",&numped);while(numped!=0)    {    printf("ingrese el numero de agencia: ");    scanf("%d",&na);    printf("ingrese el mes: ");    scanf("%d",&mes);    printf("ingrese el destino (1=Am‚rica,2=Europa,3=Asia,4=Africa): ");    scanf("%d",&dest);    printf("ingrese la cantidad de mayores: ");    scanf("%d",&may);    printf("ingrese la cantidad de menores: ");    scanf("%d",&men);     vra[na]=vra[na]+(vimp[dest]*may)+(vimp[dest]*men*0.75);    mcant[dest][mes]=mcant[dest][mes]+may+men;    vped[na]=vped[na]+1;    if ((may+men)>11)        {        c11=c11+1;        }    vrd[dest]=vrd[dest]+(vimp[dest]*may)+(vimp[dest]*men*0.75);    vcant[dest]=vcant[dest]+may+men;    mayor=vped[1];    na=1;     printf("ingrese el n£mero de pedido: ");    scanf("%d",&numped);    }    break;case 1:        for(i=1;i<=7;i++)        {            printf("Lo recaudado por la agencia %d representa el %f porciento del total",i,(vra[i]*100/ctot));        }        break;case 2:        for(i=1;i<=5;i++)        {            for(j=1;j<=13;j++)            {            printf("Al destino %d en el mes %d viajaron %d pasajeros",i,j,mcant[i][j]);            }        }        break;case 3:        for(i=2;i<=7;i++)        {            if(vped[i]>mayor)            {            mayor=vped[i];            na=i;            }        }        for(i=1;i<=7;i++)        {            if(vped[i]==mayor)            {            printf("En el mes de Julio la agencia %d tomo la mayor cantidad de pedidos, que fueron %d",i,mayor);            }        }        break;case 4:        printf("Hubieron %d pedidos mayores a 11 pasajeros",c11);        break;case 5:        for(i=1;i<=5;i++)        {        printf("El destino %d recaud¢ %f",i,vrd[i]);        }        break;case 6:        for(i=1;i<=5;i++)        {        printf("Al destino %d viajaron %d pasajeros",i,vcant[i]);        }        break;default:        printf("error!");        break;}} 

pabloarg:
Ademas cuando lo ejecuto sin el menu me manda el mensaje "Floating point error: Domain Abnormal program termination"

vite666:
puedes meter una nueva opcion que sea salir y todo lo pones dentro dentro de un while

--- Código: C ---opcion=1//forsamos a que entre al whilewhile(opcion!=7)//mientras el usuario no de opcion de salir lo seguira repitiendo{        printf("7. Salir");        switch(opcion)        {               case 1:                      printf("...");/*como en estas opciones solo muestras informacion el programa lo va a mostrar pero demaciado rapido que ni lo vas a ver*/                      getch();/*esto es para hacer una pausa en el programa, es parte de <conio.h> si trabajas en windows en linux no recuerdo la libreria, el problema es que no es ANSI asi que si no te corre utiliza getchar() dos veces, y si sigue no funcionado prueva buscar el google "pausa en c"*/                      break;               case 7:                     break;        }}  con respecto el error que te marca, tal vez es porque no inicializaste "opcion" y cuando tratas de utilizarla en el switch pues no la puede evaluar ya que tiene "basura" por el momento. ya que si dices la linea donde te marca el error te lo confirmaria.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa