Ayuda con mi programa

Iniciado por agrichi, 15 Noviembre 2017, 15:59 PM

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

agrichi

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

MCKSys Argentina

Hola!

No programo mucho en C, pero probando con un debugger/compilador online, 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!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


MAFUS

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.