Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio en C++ !!Funciones y procedimientos AYUDA

Estas en el tema de Ejercicio en C++ !!Funciones y procedimientos AYUDA en el foro de C/C++ en Foros del Web. Una compañía ha clasificado a sus n (1 <= n <= 50) empleados dentro de los grupos 1 y 2. Cada empleado del grupo 1 ...
  #1 (permalink)  
Antiguo 06/11/2010, 12:44
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Ejercicio en C++ !!Funciones y procedimientos AYUDA

Una compañía ha clasificado a sus n (1 <= n <= 50) empleados dentro de los grupos 1 y 2. Cada empleado del grupo 1 recibirá, a partir de ahora, un aumento de $250 a la semana sobre su sueldo actual, mientras que a cada uno de los del grupo 2 sólo se le dará $150 adicionales por semana. La información que se proporciona de cada empleado es: clave del empleado (comprendida entre 100 y 2500, inclusive), grupo al que pertenece (1 o 2) y sueldo semanal actual (entre $300 y $6000). Si un empleado del grupo 1 con el nuevo sueldo gana semanalmente más que el sueldo promedio del grupo, entonces debe cambiar al grupo 2. El programa debe ser capaz de:
a) Lea la información de los n empleados e imprima la clave, grupo y sueldo semanal nuevo para cada empleado, actualizando el grupo si es el caso.
b) Calcule el sueldo promedio de los empleados por grupo y calcule también el promedio general de todos, sin considerar el grupo.
c) Indique cuántos empleados cambiaron del grupo 1 al 2.

Un poco largo :S..esto es lo que llevo: (Quiero meter una procedimiento dentro de otro procedimiento para la primera parte..pero no me sale bien :X....q esta mal??


#include <iostream>
#include <conio.h>

using namespace std;
void llenardatos();
void mostrardatos();
int main() {


llenardatos();
mostrardatos();

system ("pause");
}


//*****************************funciones y procedimientos************************************ ************
void llenardatos(){
int n,i,j,aux;
cout<<"Digite el numero de empleados: ";
cin>>n;

int A[n][4];
for (i=0;i<n;i++){
j=0;
cout<<i+1<<endl;}

for (i=0;i<n;i++){
j=1;
cout<<"Ingrese el grupo al que pertenece el empleado:";
cin>> A[i][j];
if (A[i][j]==1){
for(i=0;i<n;i++){
j=3;
aux = A[i][j];
A[i][j] = aux + 250;}
}
else aux = A[i][j];
A[i][j] = aux +150;}

for (i=0;i<n;i++){
j=2;
cout<<"Digite el codigo del empleado:";
cin>> A[i][j];}

for (i=0;i<n;i++){
j=3;
cout<<"Digite el sueldo del empleado:";
cin>> A[i][j];}
system ("cls");

void mostrardatos(){
cout<<"Los datos digitados fueron:"<<endl;
for(i=0;i<n;i++){
for(j=0;j<4;j++){

cout<<" "<<A[i][j];
}
}
}

Última edición por ironsea75; 06/11/2010 a las 14:00
  #2 (permalink)  
Antiguo 06/11/2010, 16:09
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ejercicio en C++ !!Funciones y procedimientos AYUDA

Te esta faltando cerrar una llave antes de la funcion mostrardatos. Recuerda que en c no hay funciones anidadas. No puedes declarar una funcion dentro de otra.
  #3 (permalink)  
Antiguo 06/11/2010, 16:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ejercicio en C++ !!Funciones y procedimientos AYUDA

uhmm muchas gracias!....ese es el problema..pero necesito los datos de la matriz de la primera funcion...puedo declarar una matriz como parametro del procedimiento "mostrardatos()"?
  #4 (permalink)  
Antiguo 06/11/2010, 17:37
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ejercicio en C++ !!Funciones y procedimientos AYUDA

Asi seria la funcion:
Código C++:
Ver original
  1. void mostrardatos(int ** A){
  2. cout<<"Los datos digitados fueron:"<<endl;
  3. for(i=0;i<n;i++)
  4.     for(j=0;j<4;j++)
  5.         cout<<" "<<A[i][j];
  6. }

Y asi el llamado a la funcion:
Código C:
Ver original
  1. mostrardatos(A);

Igualmente tu problema esta en que la matriz A es local de esa funcion. Cuando termine la funcion llenardatos, la matriz se perdera. O puedes llamar a mostrardatos dentro de llenardatos. O hacer algo muy parecido con llenardatos.

void llenardatos(int **A)
Y la matriz A la declaras en el main,

Etiquetas: funciones, procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.