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
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!
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.