problema en simple codigo

Iniciado por elkiy, 26 Marzo 2013, 00:50 AM

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

elkiy

hola tengo un problema en este codigo:

Código (cpp) [Seleccionar]
#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 ==========

avesudra

#1
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.
Regístrate en

elkiy

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?

avesudra

#3
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:
Código (cpp) [Seleccionar]
#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.
Regístrate en