Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2012, 17:20
Gino94
 
Fecha de Ingreso: noviembre-2012
Mensajes: 2
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Programa casa de cambio

Buenas tardes/dias/noches, tengo un pequeño problema con mi programa, si compila pero a la hora de ejecutarlo me manda un error.Esto pasa cuando entras a la opcion administrador(presionando 1), luego a la opcion agregar (presionando 3) y cuando terminas de agregar la divisa ocurre un error y no puede continuar. Estoy usando un arreglo de estructuras para este programa, aqui les dejo el codigo. Agradeceria demasiado al que me pudiece ayudar con mi problema.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct divisa{
char codigo[3];
char descrip[50];
char pais[20];
float valor;
}divisa[101];

void agregar(int cont){
printf("::::: Casa de Cambio (Opcion: Agregar):::::\n");
printf("Codigo:");
scanf("%s",divisa[cont].codigo);
printf("Descripccion:");
scanf("%s",divisa[cont].descrip);
printf("Pais:");
scanf("%s",divisa[cont].pais);
printf("Valor:");
scanf("%f",divisa[cont].valor);
}

void listard(int cont){
char temp;
int i, j, res;
for(i=0; i<=100; i++){
for(j=0; j<=cont; j++){
res=strcmp(divisa[j].descrip, divisa[j+1].descrip);
if(res == 1){
divisa[j] = divisa[101];
divisa[j] = divisa[j+1];
divisa[j+1] = divisa[101];
}
}
}
printf("Codigo\t Descripccion\t Pais\t Valor\t\n");
for(i=0; i<=cont;i++){
printf("%s\t %s\t %s\t %f\t\n",divisa[i].codigo, divisa[i].descrip, divisa[i].pais, divisa[i].valor);
}
printf("\n\n");
}

void listarv(int cont){
char temp;
int i, j, res;
for(i=0; i<=100; i++){
for(j=0; j<=cont; j++){

if(divisa[j].valor > divisa[j+1].valor){
divisa[j] = divisa[101];
divisa[j] = divisa[j+1];
divisa[j+1] = divisa[101];
}
}
}
printf("Codigo\t Descripccion\t Pais\t Valor\t\n");
for(i=0; i<=cont;i++){
printf("%s\t %s\t %s\t %f\t\n",divisa[i].codigo, divisa[i].descrip, divisa[i].pais, divisa[i].valor);
}
printf("\n\n");
}

void menu () {
printf("::::: Casa de Cambio :::::\n");
printf("1) Administrador\n");
printf("2) Conversor\n");
printf("3) Salir\n");
printf("Seleccione una opcion: ");
}

void clear () {
system("cls");
}

void menu2 () {
printf("::::: Casa de Cambio (Opcion: Administrador) :::::\n");
printf("1) Listado de divisas (Descripcion)\n");
printf("2) Listado de divisas (Valor)\n");
printf("3) Agregar\n");
printf("4) Modificar\n");
printf("5) Borrar\n");
printf("6)Regresar al menu anterior\n");
printf("Seleccione una opcion: ");

}


int main () {
char buscar[3];
int cont=1,x ,y;
do{
clear();
menu();
scanf("%i",&x);
switch (x){
case 1:
do{
clear();
menu2 ();
scanf("%i", &y);
switch (y){
case 1:
clear();
listard(cont);
system("pause");
break;
case 2:
clear();
listarv(cont);
system("pause");
break;
case 3:
clear();
agregar(cont);
cont++;
break;
case 4:
break;
case 5:
break;
}
}while (y!=6);
break;

case 2:
printf("caso 2");
break;
}
} while (x!=3);


return 0;
}