hola tengo un problema en este codigo:
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int numerouno;
int numerodos;
int resultado;
numerouno = 2;
numerodos = 1;
resultado = 0;
while (true)
{
resultado = numerouno * numerodos;
numerodos = resultado;
cout << resultado << endl;
}
return 0;
}
esto es lo que me dice:
Citar1>------ Operación Generar iniciada: proyecto: ejercicios, configuración: Debug Win32 ------
1> a.cpp
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: símbolo externo _WinMain@16 sin resolver al que se hace referencia en la función ___tmainCRTStartup
1>C:\Documents and Settings\Administrador\Mis documentos\Visual Studio 2010\Projects\ejercicios\Debug\ejercicios.exe : fatal error LNK1120: 1 externos sin resolver
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
Has creado un proyecto WIN32 y al estar intentando buscar la función principal(es la misma que el main pero cuando se va a hacer un programa de ventanas con la API de Windows):
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
No la encuentra y te lanza un error, crea un proyecto de tipo consola y pega el mismo código, verás como funciona.
Cita de: avesudra en 26 Marzo 2013, 00:59 AM
Has creado un proyecto WIN32 y al estar intentando buscar la función principal(es la misma que el main pero cuando se va a hacer un programa de ventanas con la API de Windows):
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
No la encuentra y te lanza un error, crea un proyecto de tipo consola y pega el mismo código, verás como funciona.
sabes porque me imprime solo ceros?
Sí, cuando el programa va aumentando el valor en memoria de las variables, llega un momento según su cantidad en bits(8,16,32,64) en el cual estas llegan al punto de partida y vuelven a ser 0(o no, en este caso coincide ya que podría no coincidir si multiplicas en vez de aumentar), entonces cuando la variable numerodos sea 0, el resultado será 0 y todo se pondrá a 0.Puedes comprobarlo con este mismo código:
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int numerouno;
int numerodos;
int resultado;
numerouno = 2;
numerodos = 1;
resultado = 0;
while (numerodos != 0 )
{
resultado = numerouno * numerodos;
numerodos = resultado;
cout << resultado << endl;
}
return 0;
}
Lo que pasa es que llega a ese valor tan rápido que solo ves 0 y no ves los valores que ves con este programa.