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);
}
}
}