elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con funciones desde menu
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con funciones desde menu  (Leído 2,111 veces)
Luckim

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Problema con funciones desde menu
« en: 30 Julio 2012, 23:18 pm »

Tengo q hacer un menu donde el item 1 sea la carga de datos y los demas las respuestas al resultado. El problema es que no me toma los valores correspondientes de los lotes. Aver si alguien me puede decir en que me equivoque.
El codigo copila bien pero a la hora de usar las respuestas tira cualquier cosa, más que nada en el punto 1 y en el punto 2 que es con cadena de caracteres.

Código:
#include<conio.h>
#include<stdio.h>
#include<iostream>


 void menu(int*);
 void carga(int, int , int , int , int , int , int , int , float [][40], float [][40], int , int , int , char []);
 void pto1(int);
 void pto2(char []);
 void pto3(float [], float [][40], float [][40]);
 void pto4(float []);
 
 int main()
 {
     //Datos registrados
    char s1[]="asd";
    char s2[]= "asd2";
 
 
    //Verificacion de datos
    char usuario[32];
    char contrasena[32];
 
    //Enteros
    int i,k,j,opcion,cont,f,c,e,np,nc,ll,ct,nr,x;
    float mll[10][40]={0},mct[10][40]={0},vp[10]={0};
    cont=0;
    char nom[32];
 
 
    //Comienzo para los intentos de contraseña, maximo 3
    for(i=1; i<=3; i++)
    {
 
        printf("\nIngrese usuario: ");
        scanf("%s",usuario);
        k = strcmp( s1, usuario );
 
 
        if (k != 0)
        {
            printf("\nUsuario incorrecto\n");
 
 
        }
 
 
        if(k == 0)
        {
            printf("\nIngrese contrasena: ");
            scanf("%s",contrasena);
            j = strcmp( s2, contrasena);
 
            if (j == 0)
            {
                system("cls");
                printf("\nDatos correctos\n");
                printf("\nBienvenido al programa del servicio penintenciario\n");
                printf("\n");
                printf("\n");
                menu(&opcion);
                while(opcion !=9)
                  {
                      switch(opcion)
                      {
                                    case 1 :
                                             carga(i,f,c,e,np,nc,ll,ct,mll,mct,nr,cont,x,nom);
                                             break;
                                             
                                    case 2 :
                                             pto1(cont);
                                             break;
                                             
                                    case 3 :
                                             pto2(nom);
                                             break;
                                             
                                    case 4 :
                                             pto3(vp, mll, mct);
                                             break;
                                   
                                    case 5 :
                                             pto4(vp);
                                             break;
                                            }
                                            getch();
                                            system("cls");
                      menu(&opcion);
                      }
                      return 0;
                      }

 
                getch();
 
 
            }
 
            if(j != 0)
            {
                printf("\ncontrasena incorrecta\n");
 
 
            }
        }
 
 
 
 
    }

     
                     
     void menu(int * a)
     {
          printf("1-Cargar datos\n");
          printf("2-Respuesta 1\n");
          printf("3-Respuesta 2\n");
          printf("4-Respuesta 3\n");
          printf("5-Respuesta 4\n");
          printf("9-Salir\n");
          printf("\nOpcion: ");
          scanf("%d",a);
     }
     
     void carga(int a, int b, int c, int d, int e, int f, int g, int h, float i[][40], float l[][40], int m, int n, int p, char z[])
     {
         
          for(a=1;a<=2;a++)
          {
                           for(b=1;b<=2;b++)
                           {
                                             printf("\nIngrese numero de piso: ");
                                             scanf("%d",&e);
                                             printf("\nIngrese numero de celda: ");
                                             scanf("%d",&f);
                                             printf("\nIngrese numero de lugares libres: ");
                                             scanf("%d",&g);
                                             printf("\nIngrese capacidad total: ");
                                             scanf("%d",&h);
                                             i[e][f]=g;
                                             l[e][f]=h;
                                             }
                                             }
                                             printf("\nIngrese numero de recluso: ");
                                             scanf("%d",&m);
                                             
                                             while(m!=0)
                                             {
                                                         printf("\nIngrese nombre del recluso: ");
                                                         scanf("%s",z);
                                                         p=0;
                                                         
                                                         for(c=1;c<=2;c++)
                                                         {
                                                                           for(d=1;d<=2;d++)
                                                                           {
                                                                                             if(i[c][d]>0 && p==0)
                                                                                             {
                                                                                                            p=1;
                                                                                                            i[c][d]=i[c][d]-1;
                                                                                                            }
                                                                           }
                                                         }
                                                         
                                                         if(p==0)
                                                         {
                                                            n=n+1;   
                                                            printf("\nRechazado\n");
                                                           
                                                         }
                                                         printf("\nIngrese numero de recluso ");
                                                         scanf("%d",&m);
                                                         p=0;
                                             }
                           
                                             
                                             
     }
     
     //Punto 1
     
     void pto1(int a)
     {
          printf("%d no pudieron se alojados por falta de lugar",a);
     }
     
     //Punto 2
     
     void pto2(char * a)
     {
          printf("Los rechazados son: \n%d\n",a);
     }
     
//Punto 3
 
void pto3(float d[10],float e[][40], float g[][40])
{
    int f;
    for(f=1; f<=10; f++)
    {
        int c;
        for(c=1; c<=40; c++)
        {
                     d[f]=(d[f]+(e[f][c]))-(g[f][c]);
       
            if(d[f] > 0)
            {
                printf("Para el piso %d, la celda %d tiene aun disponibilidad\n",f,c);
            }
        }
    }
}
 
//Punto 4
 
void pto4(float d[10])
{
   
    float Max=d[1];
    int aux=1;
 
    int i;
    for(i=1; i<=10; i++)
    {
        if(d[i] > Max)
        {
            Max=d[i];
            aux=i;
        }
    }
 
 
    for(i=aux; i<=aux; i++)
    {
        if(d[i]==Max)
        {
            printf("El piso mas lleno es el piso %d\n",i);
        }
    }
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines