tengo que escribir la función ac sin usar math.h que devuelve la suma de esta serie s=x+x^2/2+x^3/3+...+x^n/n escribí este código y cuando ejecuto si no hay salida, no sé dónde salió mal. te agradeceria si me pudieras ayudar. editar: gracias por los comentarios. esta es la versión editada de mi código y obtuve una salida como
enter n here:
pero el resto del código no se ejecutó lo que podría estar mal. gracias de nuevo
#include<stdio.h>
double sum(int n, double x);
int main() {
int n, k;
printf("enter n here: ");
scanf("%d", &n);
for(k=1;k<=n;k++){
double pow=pow*k;
}
return 0;
}
double sum(int n, double x){
double sum=0,s;
int pow=1;
printf("Enter x=");
scanf("%lf", &x);
for(x=1;x<=n;x++){
sum+=x;
}
s+=((x*pow)/n);
printf("the sum of the series %lf", s);
return s;
}
editado: créditos a @Anas Ahmed. aquí hay un código de trabajo
#include <stdio.h>
double power(int x, int n)
{
int result = 1;
while (n > 0) {
if (n % 2 == 0) // n is even
{
x = x * x;
n = n / 2;
}
else // n isn't even
{
result = result * x;
n = n - 1;
}
}
return result;
}
double sum(int x, int n)
{
double i, result = 0.0;
for (i = 1; i <= n; i++)
result += power(x, i) / i;
return result;
}
int main() {
int n,x;
printf("enter n here: ");
scanf("%d", &n);
printf("enter x here: ");
scanf("%d", &x);
printf("The sum is: %lf \n",sum(x,n));
return 0;
}
y la salida sera asi
enter n here:
enter x here:
Solución del problema
#include <stdio.h>
double power(int x, int n)
{
int result = 1;
while (n > 0) {
if (n % 2 == 0) // n is even
{
x = x * x;
n = n / 2;
}
else // n isn't even
{
result = result * x;
n = n - 1;
}
}
return result;
}
double sum(int x, int n)
{
double i, result = 1.0;
for (i = 1; i <= n; i++)
result += power(x, i) / i;
return result;
}
int main() {
int n,x;
printf("enter n here: ");
scanf("%d", &n);
printf("enter x here: ");
scanf("%d", &x);
printf("The sum is: %lf \n",sum(x,n));
return 0;
}
No hay comentarios:
Publicar un comentario