#include<iostream>
//#include<conio.h>
//#include<cstdio>
//#include<string.h>
 
using namespace std;
 
void ingresar();
int j;
struct empleado
{
    char nombre[25];
    int up[30];
}p[3];
 
int main()
{
    for(j=0;j<3;j++)
    {
         //system("cls");
         ingresar();
    }
    system("pause");
    return 0;
}
 
void ingresar()
{
     int i=0,k = 0,n=0,s=0;
     s =j;
     cout<<"nningrese su nombre: "<<j<<"  ";
     cin.getline(p[s].nombre,25);//me gustaria reemplazar esta funcion por otra 
     //que se funcional en todo el ciclo for
     while(i<5)
     {
          cout<<"ningrese las unidades producidas/dias"<<endl;
          cin>>p[s].up[i];
          n=n + p[s].up[i];
          i++;
     }
     //system("cls");
     k=n/3;
     cout<<"el nombre es: "<<p[s].nombre<<endl;
     cout<<" producion total mes/empleado: "<<n<<endl;
     cout<<"promedio produccion dia/empleado: "<<k<<endl;
     cin.ignore();
     //system("pause");
}
 
 
 
Bueno Aqui esta el codigo, para comenzar, debes cuidar bien el tamaño de la cadena, en este caso 25 caracteres, debes cuidar las refencias de las variables globales y las locales, es ineficinete y mala practica utilizar variables globales x ejemplo int j; sobre una funcion, es recomendable usarlo dentro de la funcion ingresar(), la buena programacion se trata q las funciones sean reutilizables en otros codigos, y en este caso no lo es... bueno y por ultimo despues de cada ciclo cuando llamas cin.getline se lee una cadena o string, y qda algunos caracteres en memoria como '' ' o 'n' y para limpiarlo se usa x ejemplo un cin.ignore() al final para asegurar q volvera a leer un nuevo contenido.... cualquier otra cosa me preguntas