elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Id returned 1 exit status , error en c++ (Ayuda)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Id returned 1 exit status , error en c++ (Ayuda)  (Leído 1,747 veces)
Justav

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Id returned 1 exit status , error en c++ (Ayuda)
« en: 22 Enero 2018, 00:11 am »

//estaba programando en c++ estructuras con punteros y me sale ese error , no lo entiendo y no encuentro solución , espero me puedan ayuda :C

Código
  1. #include "iostream"
  2. #include "conio.h"
  3. #include "stdlib.h"
  4.  
  5. using namespace std;
  6. struct Alumno{
  7. char nombre[30];
  8. int edad;
  9.    float promedio;
  10. }alumno[3] , *puntero_alumno=alumno;
  11.  
  12. void pedirDatos();   ///PROTOTIPO
  13. void calcularMejorPromedio(Alumno *);
  14.  
  15.  
  16. int main(){
  17. system("color 0b");
  18.  
  19. pedirDatos();
  20. calcularMejorPromedio(puntero_alumno);
  21.  
  22. system("pause");
  23. return 0;
  24. }
  25.  
  26. void perdirDatos(){
  27.  
  28. for(int i=0;i<3;i++){
  29. fflush(stdin);
  30. cout<<"Digite nombre del alumno : ";
  31.  
  32. cin.getline((puntero_alumno+i)->nombre,30,'\n');
  33.  
  34. cout<<"Digite edad del alumno : ";
  35.  
  36. cin>>(puntero_alumno+i)->edad;cout<<endl;
  37.  
  38. cout<<"Digite promedio del alumno : ";
  39.  
  40. cin>>(puntero_alumno+i)->promedio;cout<<endl;
  41.  
  42. }
  43. }
  44.  
  45. void calcularMejorPromedio(Alumno *puntero_alumno){
  46. float mayor = 0.0;
  47. int pos=0;
  48.  
  49. for(int i=0;i<3;i++){
  50. if((puntero_alumno+i)->promedio > mayor){
  51. mayor= (puntero_alumno+i)->promedio;
  52. pos=i;
  53. }
  54. }
  55. ///imprimiendo datos
  56. cout<<"\nEl alumno con el mayor promedio es : \n";
  57. cout<<"Nombre : "<<(puntero_alumno+pos)->nombre<<endl;
  58. cout<<"edad : "<<(puntero_alumno+pos)->edad<<endl;
  59. cout<<"PROMEDIO: "<<(puntero_alumno+pos)->promedio<<endl;
  60. }
  61.  
  62.  
  63.  


En línea

WHK
CoAdmin
***
Conectado Conectado

Mensajes: 6.536


The Hacktivism is not a crime


Ver Perfil WWW
Re: Id returned 1 exit status , error en c++ (Ayuda)
« Respuesta #1 en: 22 Enero 2018, 00:30 am »

No se pero en mi sistema operativo no existe el comando color, supongo que solo quieres programar para windows, en ese caso usa c#. No has pensado en usar clases en ves de estructuras? si usas c++ puedes programar orientado a objeto.

Al momento de compilar utiliza estos argumentos: "-Wall -Wextra" y vee que errores aparecen. Por lo menos en mi caso esos argumentos los uso con g++ desde linux.


« Última modificación: 22 Enero 2018, 02:42 am por WHK » En línea

Telegram: @WHK102 - Semáforo Epidemiologico Chile
WHK
CoAdmin
***
Conectado Conectado

Mensajes: 6.536


The Hacktivism is not a crime


Ver Perfil WWW
Re: Id returned 1 exit status , error en c++ (Ayuda)
« Respuesta #2 en: 22 Enero 2018, 03:26 am »

Mira, ordené tu código, lo orienté a objeto, utilicé librerías comunes y corregí un par de problemas:

Código
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <list>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. class Alumno
  9. {
  10.    private:
  11.        string nombre;
  12.        int    edad;
  13.        float  promedio;
  14.  
  15.    public:
  16.        void setNombre(string nombre)
  17.        {
  18.            this->nombre = nombre;
  19.        };
  20.  
  21.        void setNombre(char nombre[50])
  22.        {
  23.            this->setNombre(string(nombre));
  24.        };
  25.  
  26.        string getNombre()
  27.        {
  28.            return this->nombre;
  29.        };
  30.  
  31.        void setEdad(int edad)
  32.        {
  33.            this->edad = edad;
  34.        };
  35.  
  36.        int getEdad()
  37.        {
  38.            return this->edad;
  39.        };
  40.  
  41.        void setPromedio(float promedio)
  42.        {
  43.            this->promedio = promedio;
  44.        };
  45.  
  46.        float getPromedio()
  47.        {
  48.            return this->promedio;
  49.        };
  50. };
  51.  
  52. class Calculador
  53. {
  54.    private:
  55.        list<Alumno> alumnos;
  56.  
  57.    public:
  58.        void pedirDatos()
  59.        {
  60.            for(int i = 1; i <= 3; i++)
  61.            {
  62.                Alumno alumno;
  63.                char nombre[50];
  64.                int edad;
  65.                float promedio;
  66.  
  67.                cout << "Digite nombre del alumno " << i << "   : ";
  68.                cin  >> nombre;
  69.  
  70.                cout << "Digite edad del alumno " << i << "     : ";
  71.                cin  >> edad;
  72.  
  73.                cout << "Digite promedio del alumno " << i << " : ";
  74.                cin  >> promedio;
  75.  
  76.                alumno.setNombre(nombre);
  77.                alumno.setEdad(edad);
  78.                alumno.setPromedio(promedio);
  79.  
  80.                this->alumnos.push_back(alumno);
  81.            }
  82.        };
  83.  
  84.        void calcularMejorPromedio()
  85.        {
  86.            std::list<Alumno>::iterator mayor;
  87.            bool first = true;
  88.  
  89.            // Procesa cada alumno
  90.            std::list<Alumno>::iterator alumno = alumnos.begin();
  91.            while (alumno != alumnos.end())
  92.            {
  93.                if(first)
  94.                {
  95.                    first = false;
  96.  
  97.                    // Primera iteración.
  98.                    mayor = alumno;
  99.                }
  100.                else if(alumno->getPromedio() > mayor->getPromedio())
  101.                {
  102.                    // El promedio del alumno actual es mayor que el
  103.                    // promedio del alumno mayor guardado en memoria.
  104.                    mayor = alumno;
  105.                }
  106.                // Siguiente alumno en la iteracion
  107.                ++alumno;
  108.            }
  109.  
  110.            // Imprimiendo datos
  111.            cout << endl << "------------------------------------" << endl;
  112.            cout << "El alumno con el mayor promedio es :" << endl;
  113.            cout << "Nombre   : " << mayor->getNombre() << endl;
  114.            cout << "Edad     : " << mayor->getEdad() << endl;
  115.            cout << "Promedio : " << mayor->getPromedio() << endl;
  116.        };
  117. };
  118.  
  119.  
  120. int main()
  121. {
  122.    Calculador calculador;
  123.    // system("color 0b");
  124.    calculador.pedirDatos();
  125.    calculador.calcularMejorPromedio();
  126.    // system("pause");
  127.    return 0;
  128. }

Para compilar y ejecutar desde linux:

Código
  1. whk@machine:~/Escritorio$ g++ test.cc -Wall -Wextra -std=gnu++11 -o test
  2. whk@machine:~/Escritorio$ file test
  3. test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=d0df961dbb63c5df1b4e02ca2430b12c8ecc6646, not stripped
  4. whk@machine:~/Escritorio$ chmod +x test && ./test
  5. Digite nombre del alumno 1   : test1
  6. Digite edad del alumno 1     : 10
  7. Digite promedio del alumno 1 : 5
  8. Digite nombre del alumno 2   : test2
  9. Digite edad del alumno 2     : 11
  10. Digite promedio del alumno 2 : 6
  11. Digite nombre del alumno 3   : test3
  12. Digite edad del alumno 3     : 7
  13. Digite promedio del alumno 3 : 7
  14.  
  15. ------------------------------------
  16. El alumno con el mayor promedio es :
  17. Nombre   : test3
  18. Edad     : 7
  19. Promedio : 7

Ahora es solo cuestión de crear todas las validaciones de entrada de valores.

También lo puedes compilar en windows sin problemas generando un .exe. Trata de ser mas ordenado cuando programes, usa comentarios, ten cuidado con las identaciones, acostumbrate a utilizar llaves foraneas siempre, etc, intenta que tu código siempre sea legible y facil de entender por otras personas.

Si vas a programar con estructuras y punteros te recomiendo mejor utilizar c en ves de c++.
« Última modificación: 22 Enero 2018, 03:37 am por WHK » En línea

Telegram: @WHK102 - Semáforo Epidemiologico Chile
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Error] ld returned 1 exit status, Ayuda soy nuevo en C
Programación C/C++
rkrdto 2 6,174 Último mensaje 23 Enero 2015, 08:40 am
por Almamu
Error en C: Id returned 1 exit status
Programación C/C++
nemesis27 5 4,817 Último mensaje 2 Mayo 2017, 16:53 pm
por joseka1234
Error Id returned 1 exit status
Programación C/C++
elisichi 5 7,558 Último mensaje 5 Enero 2018, 03:42 am
por MAFUS
Ayuda | [Error] Id returned 1 exit status
Programación C/C++
LolTrollero 4 1,417 Último mensaje 28 Mayo 2018, 06:14 am
por LolTrollero
Necesito ayuda me sale [Error] ld returned 1 exit status
Programación C/C++
lizethmar 1 725 Último mensaje 6 Marzo 2019, 16:43 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines