Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: agrichi en 15 Noviembre 2017, 15:59 PM

Título: Ayuda con mi programa
Publicado por: agrichi en 15 Noviembre 2017, 15:59 PM
Hola, alguien me puede decir que está mal en este programa?
Gracias!!

/* Programa que calcula 2^1+2^2+2^3+...+2^n */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
double num,resultado=0;
int i;
printf("Ingrese el valor de \"n\"\n\n");
scanf("%d",&num);
for(i=1;i<=num;i++)
  resultado+=pow(2,(double)i);
system("cls");
printf("El resultado es:  %f\n\n",resultado);
return 0;
}


MOD: Etiqueta GeSHi
Título: Re: Ayuda con mi programa
Publicado por: MCKSys Argentina en 15 Noviembre 2017, 18:14 PM
Hola!

No programo mucho en C, pero probando con un debugger/compilador online (https://www.onlinegdb.com/), veo que funciona si declaras num como int:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
double resultado=0;
int num;
int i;
printf("Ingrese el valor de \"n\"\n\n");
scanf("%d",&num);
for(i=1;i<=num;i++)
  resultado+=pow(2,(double)i);
system("cls");
printf("El resultado es:  %f\n\n",resultado);
return 0;
}


Saludos!
Título: Re: Ayuda con mi programa
Publicado por: MAFUS en 15 Noviembre 2017, 19:31 PM
Pues en verdad declarar num como double pero capturas un dato entero en scanf. En memoria son representaciones totalmente diferentes. Como dice MCKSys Argentina, declara num como int.