necesito ayuda con un programa basico de calculo de sueldo, me tira un error de compilacion y no me lo ejecuta aca esta el codigo agradeceria cualquier ayuda.
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void menu(int*);
void cargalote(int*);
int ca,cb,cc,a,b,c,opcion,promsueldo,nlegajo,;
int I,i,h,cat,vem[3],ant,vms[3],catms;
int sueldobruto;
int horas,x,antigue,j,y,ulega,M[100][6];
M[100][1]=0;
char usuario[30],vt[7][3];
char password[30];
int main()
{
do
{
printf("Usuario: ");
gets(usuario);
printf("Contrase%ca: ",164);
gets(password);
x=strcmp(usuario,"dubi332000");
y=strcmp(password,"dubi332000");
system("cls");
if((x==0)&&(y==0))
{
menu(&opcion);
while(opcion !=2)
{ switch(opcion)
{
case 0:
system("cls");
printf("ingrese nº de legajo");
scanf("%d",&nlegajo);
cargalote(&nlegajo);
break;
case 1: for(I=1;I<=ulega;I++)
{
printf("el empleado %d de cat %d tuvo un neto de $ %d \n",M[1],M[2],M[5]);
break;
}
menu(&opcion);
getch();}
void menu(int* opcion)
{
printf("\n\nBienvenido al menu\n");
printf("Elija la opcion que desea de las siguientes\n");
printf("0.Cargar datos\n");
printf("1.imprecion de datos cargado \n");
printf("2.Salir \n");
printf("\nIngrese la opcion que desea realizar? \n");
scanf("%d",opcion);
}
void cargalote(int* nlegajo)
{
while(nlegajo !=0)
{
printf("ingrese categoria 1=A, 2=B ,3=c ");
scanf ("%d",&cat);
printf("ingrese antiguedad");
scanf("%d",&ant);
printf("ingrese horas trabajadas");
scanf("%d",&horas);
ulega=ulega+1;
for (I=1;I<=6;I++)
{
switch (I)
{
case 1: M[ulega]=nlegajo;//numero de legajo en la matriz
break;
case 2:M[ulega]=cat;//categoria a la que pertenece
break;
case 3:M[ulega]=antigue;//antiguedad de la persona
break;
case 4:M[ulega]=horas;//horas extras trabajadas
break;
case 5: switch (cat)
{
case 1:aux=600; aux1=50;
case 2:aux=800; aux1=40;
case 3:aux=1200; aux1=30;
extras=((aux+aux1)/180)*horas;
bruto=aux+(aux1*ant)
neto=(bruto*100)/17;
M[ulega][5]=bruto;
M[ulega][6]=neto; //sueldo neto
if (vms[cat]< M[ulega][6])
{ vms[cat]=M[ulega][6];
catms=cat;
promsueldo=M[ulega][I+1]+promsueldo;
vem[cat]=vem[cat]+1 ;
} //sueldo bruto obtenido
printf("ingrese nº de legajo");
scanf("%d",&nlegajo);}
}}
Hola! primero que nada antes de postiar un codigo estaria bueno que revises el programa y veas los posibles errores que puede tener (no digas: "uhh no me anda, subo el codigo y q me lo arreglen", a muchos les caeria mal ya que son errores muy simples)
Te marco algunos errores:
1º En el main abris muchas llaves pero no cerras todas
2º En cargalote() usas varias variables pero a muchas no la declaras
3º En algunas partes del codigo pareciera que sabes usar las matrices pero en el for-switch dice todo lo contrario(tenes que usar los dos subindices M[][]). Ademas revisa bien que es lo que hace ese for-switch, ¿estas seguro que queres usar ulega solo como subindice?
En el switch del case 5, ¿¿te olvidaste los break??
4º void cargalote(int* nlegajo)
{
while(nlegajo !=0)
{
Si vas a pasar nlegajo por pseudoreferencia, tenes que usar *(indireccion) para acceder al contenido de esa variable. Seria:
void cargalote(int* nlegajo)
{
while(*nlegajo !=0) // *nlegajo: el contenido de nlegajo
{
y asi en todos los casos que usas nlegajo
Saludos
PD: usa las Geshi para postiar codigo
Añado que iostream.h está obsoleto, quítale el .h final.