problemas con el ciclo

Iniciado por kyosatoishy, 5 Octubre 2016, 05:55 AM

0 Miembros y 1 Visitante están viendo este tema.

kyosatoishy

 >:D >:D buenas noche compañeros, soy estudiante de informatica de venezuela y tengo un problema con el ciclo for, me mandaron a diceñar un codigo ( Diseñar un algoritmo que permita registrar de los empleados de una fábrica (No se sabe cuántos), su peso y saber cuántos pesan hasta 80kgrm y cuántos pesan más de 80kgm. Imprima ambos resultados. ) y lo e diceñado pero me salta un error al lanzarlo con el dev-c cuando coloco el nombre para que lo guarde me sale todo corrido, les muestro el codigo y me avisan si hay algun error

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

using namespace std;
int main()
{
   int nomb,apelli,n,i;
   float peso;
   cout<<"REGISTRO DE EMPLEADOS\n\n";
   cout<<"Introduzca cantidad de empleados\n\n";
   cin>>n;
   for(i=1;i<n;i++)
   {
      cout<<"Introduzca nombre:\n"<<endl;
      cin>>nomb;
      cout<<"Introduzca Apellido:\n"<<endl;
      cin>>apelli;
      cout<<"Introduzca su Peso\n"<<endl;
      cin>>peso;
       //i++;
      
   }
   if(peso=80){
   cout<<"los empleados con peso mayor a 80 klg son"<<peso<<endl;
   }else
   cout<<"Empleados que pesan menos de 80 Klg"<<peso<<endl;
   
   
   cout<<"El nombre de su empleado es"<<nomb<<endl;
   cout<<"El apellido de su empleado"<<apelli<<endl;
   cout<<"y su peso es:"<<peso<<endl;
   system("pausa");
   retunr 0;
   
}

lo que me sale es asi

[Error] ld returned 1 exit status


ayuda por favorrrrrrrrr

oldaccount

#1
Hola kyosatoishy.

Esta es mi solución al problema:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

struct Empleado {
char nombre[32];
char apellido[32];
float peso;
};

int main() {
int numeroDeEmpleados;

cin >> numeroDeEmpleados;

struct Empleado listaDeEmpleados[numeroDeEmpleados];

for (int i = 0; i < numeroDeEmpleados; i++) {
cin >> listaDeEmpleados[i].nombre;
cin >> listaDeEmpleados[i].apellido;
cin >> listaDeEmpleados[i].peso;
}

for (int i = 0; i < numeroDeEmpleados; i++) {
if (listaDeEmpleados[i].peso > 80) {
cout << listaDeEmpleados[i].nombre << " ";
cout << listaDeEmpleados[i].apellido << " ";
cout << "pesa más de 80 kilogramos." << endl;
} else {
cout << listaDeEmpleados[i].nombre << " ";
cout << listaDeEmpleados[i].apellido << " ";
cout << "no pesa más de 80 kilogramos." << endl;
}
}
}


Esta es la salida del programa:

3
Cristian
Rivas
60
Manuel
Castillo
87
Carla
Sanchez  
47
Cristian Rivas no pesa más de 80 kilogramos.
Manuel Castillo pesa más de 80 kilogramos.
Carla Sanchez no pesa más de 80 kilogramos.


Saludos.

kyosatoishy

gracias hermano CRivasGomez, en verdad mill gracias por la ayuda, sabes cual fue mi error para correjirlo en un futuro

dato000

Cita de: kyosatoishy en  5 Octubre 2016, 20:30 PM
gracias hermano CRivasGomez, en verdad mill gracias por la ayuda, sabes cual fue mi error para correjirlo en un futuro

Tienes varios errores en la sintaxis, quieres acumular varios nombres y pesos de los empleados pero solo estas usando una variable de cada tipo, tienes que asignar cada variable para cada valor que buscar guardar. de esta manera, si usas una variable tipo int solo podra asignarse para un valor de peso.

Así mismo, el nombre es una variable que usa carácteres, así que necesitas usar un tipo de variable que permita usar caracteres, como char (como hizo nuestro amigo arriba, usando un arreglo, vector o matriz de char, pues la variable tipo char solo puede almacenar un caracter, mientras un arreglo de char puede guardar un número definido de caracteres) o string.

Cuando estas validando cuantos tienen exactamente 80 kilos y cuantos tienen menos, lo más común es usar contadores, que son unas variables tipo int que se inician desde cero y van creciendo a medida que se cumple una condición, en este caso, que el peso sea igual a 80 kilos.


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

using namespace std;
int main()
{
    string nombre[10]; // para el nombre y el apellido, temporalmente asignar 10 nombres máximo
    int n,i;
    float peso[10];    //para asignar hasta 10 pesos
    int contadorIgual=0, contadorMenor=0;


    cout<<"REGISTRO DE EMPLEADOS\n\n";
    cout<<"Introduzca cantidad de empleados: ";
    cin>>n;
    for(i=0; i<n; i++) //
    {
       cout<< "Introduzca nombre: ";
       cin>>  nombre[i];
       cout<< "Introduzca su Peso: ";
       cin>>  peso[i];

       if(peso[i] == 80.0){
            contadorIgual++;
       }
       else{
            contadorMenor++;
       }

       cout << endl;
    }

    cout<<"los empleados con peso mayor a 80 kg son: "<<contadorIgual<<endl;
    cout<<"Empleados que pesan menos de 80 Kg: "<<contadorMenor<<endl;

    for(i=0; i<n; i++) //
    {
        cout<<"El nombre de su empleado es: " << nombre[i] <<endl;
        cout<<"y su peso es: " << peso[i] <<endl;
    }
    return 0;

}



kyosatoishy

hermano muchísimas gracias en verdad, me as ayudado un mundo eres el mejor  ;-) ahorita estamos viendo ciclo for aun no hemos visto estructuras pero es el paso que viene, y excelente suplicacionero :D ;-) ;-) ;-)