error id returned 1 exit status

Iniciado por nick-otro, 30 Abril 2018, 03:13 AM

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

nick-otro

Hola, alguien tiene idea de por qué me aparece este error de compilación?

este es el código:


Código (cpp) [Seleccionar]
#include<iostream>
#include<conio.h>
using namespace std;
int main(){

int n, suma= 0;

for(int i=1; i<=2*n-1; i=i+2){
suma = suma+i;
}
cout<<"suma: "<<suma;
getch();
return 0;
}


engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

nick-otro

no creo que sea una mala instalación del compilador ya que con este código no me marca ningún error
Código (cpp) [Seleccionar]
#include<iostream>
#include<stdlib.h>

using namespace std;

int main(){
int n,suma=0;

cout<<"Digite la cantidad de elementos que desea sumar: ";
cin>>n;

for(int i=1;i<=2*n-1;i+=2){
suma += i;

}

cout<<"La suma es: "<<suma<<endl;
system("pause");
return 0;
}

engel lex

Cita de: nick-otro en 30 Abril 2018, 03:13 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?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

6666

No se que intentas hacer pero el error es que no especificaste un valor para la variable local int n.

MAFUS

Esto es por conio.h que es una librería de Borland y estás usando otro compilador que no la tiene.

dijsktra

#6
Cita de: 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.

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


...
#include<conio.h>
#define getchr  _getchr

using namespace std;

int main(){
....


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

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?)
Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)