Translate

martes, 1 de octubre de 2013

Manejo de datos personas en C

Este es un ejercicio de propuesto en clase
Solo tengo un error que no me  devuelve los porcentajes de hombres y mujeres desde la función, si alguien sabe el error me lo hace saber.... 


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

///Funcion opcion 1___________________________________________________________________________________________________________
void IngresarDatosEstudiantes(int t,int m[150][4]){
int f,c;

printf("Ingrese los datos del estudiante en este orden seguido de la tecla ENTER: \n");
printf("Sexo: Masculino-->0.\n      Femenino--->1.\n\nEstado Civil:Soltero--->0.\n             Casado--->1.\n             Viudo--->2.\n\nTrabaja Si--->0.\n        NO--->1.\n\nSUELDO(sin decimales).\n\n");
for(f=1;f<=t;f++){///Filas
    for(c=1;c<=4;c++){///Columnas

           if(m[f][c]==m[f][1]){
            printf("Ingrese sexo del alumno #%d: \n",f);
            scanf("%d",&m[f][c]);
           }

           if(m[f][c]==m[f][2]){
            printf("Ingrese estado civil del alumno #%d: \n",f);
            scanf("%d",&m[f][c]);
           }

           if(m[f][c]==m[f][3]){
            printf("Ingrese si trabaja el alumno #%d: \n",f);
            scanf("%d",&m[f][c]);
            }///Fin si


            if(m[f][c]==m[f][4] ){
            printf("Ingrese el salario del alumno #%d (sindecimales): \n",f);
            scanf("%d",&m[f][c]);
           }





                    }///Fin columnas
                }///Fin filas
            }///Fin Funcion


///Funcion que devuelve un float opcion 2______________________________________________________________________________________
  float CalcularPor1(int t,int m[150][4]){
  int f,cont=0;
  float p,porce;
  for(f=1;f<=t;f++){

        if(m[f][1]==0){
            cont=cont+1;
        }
  }
  p=cont/t;
  porce=p*100;


  return porce;
  }

///__________________________________________________________________________________________________________________________


float CalcularPor2(int t,int m[150][4]){
  int f,cont=0;
  float p;

  for(f=1;f<=t;f++){

        if(m[f][1]==1){
            cont=cont+1;
        }

  }

  p=(cont/t)*100;


  return p;
  }
///__________________________________________________________________________________________________________________________

 void CantidadHMEC( int t,int e,int m[t][4]){///Calcular cantidad de hombres y mujeres para un estado civil ingresado
 int f,contM=0,contF=0;

 for(f=1;f<=t;f++){
    if(m[f][1]==0 && m[f][2]==e){
        contM=contM+1;
    }else if(m[f][1]==1 && m[f][2]==e){///Abre else
     contF=contF+1;
    }///Fin sino.
 }///Fin for

 printf("La cantidad de hombres para el estado civil ingresado es de: %d \n",contM);
 printf("La cantidad de mujeres para el estado civil ingresado es de: %d \n",contF);

 }///Fin funcion

///__________________________________________________________________________________________________________________________

void SueldoMujeres(int salario,int t,int m[t][4]){///Calcula las mujeres que devengan un sueldo igual o mayor al ingresado.
int f,contF=0;
for(f=1;f<=t;f++){
    if(m[f][1]==1 && m[f][4]>=salario){
        contF=contF+1;
       }///Fin si
      }///Fin for

    if(contF==0){
        printf("No hay mujeres que devengan un sueldo igual o mayor a %d\n",salario);
    }else if(contF!=0){
        printf("el numero de mujeres que trabajan y ganan un salario igual o mayor a %d es de %d\n",salario,contF);
    }///Fin sino



    }///Fin Funcion

///___________________________________________________________________________________________________________________________

void MostrarMatriz(int t,int m[t][4]){
int f,c;

printf(" ");
for(f=1;f<=t;f++){
    for(c=1;c<=4;c++){
        printf("matriz[%d][%d] %d ",f,c,m[f][c]);
    }
    printf("\n");
}
printf(" ");


}


///***************************************************************************************************************************
///_____________________________________________________________________________________________________________________________
int main()
{


     int matriz[150][4],opc=0,numE=0,eCivil=0,sueldoU=0;
     float  p1;
     //int p2=0;



     do{
        printf("\t\t***MANEJO DE LOS DATOS PERSONALESDE LOS ESTUDIANTES DEL PROGRAMA \t\tDE TECNOLOGIA EN SISTEMAS DE LA  UCP.***\n");
        printf("1.Ingrese el numero de estudiantes\n");
        printf("2.Calcular el porcentaje de hombres y mujeres.\n");
        printf("3.Calcular cantidad de hombres y mujeres para un estado civil.\n");
        printf("4.Calcular y mostrar la distribución de mujeres solteras que trabajan\n");
        printf("5.Salir.\n");
        scanf("%d",&opc);

        switch(opc){

    case 1:
        printf("Cuantos estudiantes va a ingresar?\n");
        scanf("%d",&numE);

        IngresarDatosEstudiantes(numE,matriz);
        printf("\n");


        break;

    case 2:

          MostrarMatriz(numE,matriz);
          printf("\n");
          p1=CalcularPor1(numE,matriz);
          printf("El procentage de hombres es de: %.2f",p1);
          printf("\n");
          int p2=CalcularPor2(numE,matriz);
          printf("El procentage de mujeres es de: %d",p2);
          printf("\n");

        break;

    case 3:
        printf("Ingrese estado civil:\nRecuerde Soltero=0,Casado=1,Viudo=2.\n");
        scanf("%d",&eCivil);

        CantidadHMEC(numE,eCivil,matriz);
        printf("\n");
        break;

    case 4:
        printf("Ingrese sueldo:\n");
        scanf("%d",&sueldoU);
        SueldoMujeres(sueldoU,numE,matriz);
        printf("\n");
        MostrarMatriz(numE,matriz);
        printf("\n");
        break;

    case 5:
       printf("HASTA LUEGO!!!!");
       printf("\n");

        break;


        }///Fin segun

     }while(opc!=5);

    return 0;
}

No hay comentarios:

Publicar un comentario