Hola, alguien tiene idea de por qué me aparece este error de compilación?
este es el código:
#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;
}
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
no creo que sea una mala instalación del compilador ya que con este código no me marca ningún error#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;
}
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?
No se que intentas hacer pero el error es que no especificaste un valor para la variable local int n.
Esto es por conio.h que es una librería de Borland y estás usando otro compilador que no la tiene.
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 softwarehttps://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?)