Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nick-otro en 30 Abril 2018, 03:13 am



Título: error id returned 1 exit status
Publicado por: nick-otro en 30 Abril 2018, 03:13 am
Hola, alguien tiene idea de por qué me aparece este error de compilación?

este es el código:


Código
  1. #include<iostream>
  2. #include<conio.h>
  3. using namespace std;
  4. int main(){
  5.  
  6. int n, suma= 0;
  7.  
  8. for(int i=1; i<=2*n-1; i=i+2){
  9. suma = suma+i;
  10. }
  11. cout<<"suma: "<<suma;
  12. getch();
  13. return 0;
  14. }


Título: Re: error id returned 1 exit status
Publicado por: engel lex en 30 Abril 2018, 03:18 am
primero que nada... n no tiene un valor valido, el contenido del mismo es un valor residual de la ram

de resto si el error te lo da en ejecución probablemente es la n si te lo da en compilación como indicas, lo más probable es una mala instalación del compilador


Título: Re: error id returned 1 exit status
Publicado por: nick-otro en 30 Abril 2018, 03:22 am
no creo que sea una mala instalación del compilador ya que con este código no me marca ningún error
Código
  1. #include<iostream>
  2. #include<stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7. int n,suma=0;
  8.  
  9. cout<<"Digite la cantidad de elementos que desea sumar: ";
  10. cin>>n;
  11.  
  12. for(int i=1;i<=2*n-1;i+=2){
  13. suma += i;
  14.  
  15. }
  16.  
  17. cout<<"La suma es: "<<suma<<endl;
  18. system("pause");
  19. return 0;
  20. }


Título: Re: error id returned 1 exit status
Publicado por: engel lex en 30 Abril 2018, 03:24 am
Hola, alguien tiene idea de por qué me aparece este error de compilación?


tu eres quien indica que ese error te lo da el compilador... podría colocar una captura de pantalla?


Título: Re: error id returned 1 exit status
Publicado por: 6666 en 30 Abril 2018, 06:41 am
No se que intentas hacer pero el error es que no especificaste un valor para la variable local int n.


Título: Re: error id returned 1 exit status
Publicado por: MAFUS en 30 Abril 2018, 06:51 am
Esto es por conio.h que es una librería de Borland y estás usando otro compilador que no la tiene.


Título: Re: error id returned 1 exit status [_getchr()]
Publicado por: dijsktra en 30 Abril 2018, 13:46 pm
Esto es por conio.h que es una librería de Borland y estás usando otro compilador que no la tiene.

Empiezo por la solución. Prueba a poner, como solución local:

Código
  1. ...
  2. #include<conio.h>
  3. #define getchr  _getchr
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8. ....
  9.  

a ver qué pasa...(no he podido probar porque tengo Linux...)

Como dice MAFUS, pertenecían a Borland, pero Microsoft las mantiene en su SDK, para garantizar compatibilidad con el legacy software

https://docs.microsoft.com/en-us/cpp/c-runtime-library/console-and-port-i-o (https://docs.microsoft.com/en-us/cpp/c-runtime-library/console-and-port-i-o)

Pero, bien claro lo advierte...

This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported in Universal Windows Platform apps.


Es  una pena que para un programa que no pretende hacer una aplicación, sino un sencillo algoritmo con entrada-salida por consola se pierda compatibilidad con el restro de plataformas linux, mac, freebsd...

Las recomendaciones al respecto, son...
  • No uses ni "_getchr()", ni system("PAUSE"). Esta última, aunque te funcione, lo que hace es abrir todo un proceso costoso que NADA tiene que ver con tu algoritmo.... Tendría sentido en programación Batch* de windows.
    Ejecuta el programa desde una consola abierta expresamente para eso, no lanzándolos desde el IDE... busca dónde se guarda el ".exe" y des la consola lo ejecutas. Así todos los símbolos se quedan para que los puedas ver
  • Si aún quieres lanzarlos desde el IDE, (Visual C++, Dev-Cpp....) prueba a poner un sencillo "cin >> ch" , con "ch" de tipo "char"... que espera latente a leer un caracter (más el enter). As'i al menos, lo podran ejecutar otras plataformas no windows. Pero ojo, estas marcando un "protocolo"  de entrada totalmente inútil... Mejor ejecuta desde consola!

*... Hace poco en estos foros pude ver a uno de los mejores programadores de Batch "del mundo"... creo que era de Méjico.... Increible lo que podia hacer con el command.com. (Sabe algo alguien de él?)