新人求助
本帖最后由 秋灯烬 于 2022-3-13 17:26 编辑//计算两个printf对应的式子
#include<stdio.h>
int s(int n);
int main(void)
{
double i;
int n;
printf("输入您的项数\n");
while (scanf_s("%d", &n) == 1 && n > 0)//让用户输入项数
{
double rest1 = 0.0;//初始化rest1
double rest2 = 0.0;//初始化rest2
for (i = 1; i <= n; i++)
{
rest1 += 1.0 / i;//计算rest1的值
}
for (i = 1; i <= n; i++)
{
rest2 += (1.0 / i) * s(n);//计算rest2的值,这里有问题
}
printf("1.0 + 1.0/2.0 + 1.0/3.0 +...的n项和为:%g\n",rest1);
printf("1.0 - 1.0/2.0 + 1.0/3.0 -...的n项和为:%g\n",rest2);
}
return 0;
}
ints(int n)
{
int a;
int sum = 1;
for (a = 1; a <= (n - 1);a++)
{
sum *= -1;
}
return sum;
}
大佬们 rest 2计算不对,我想让程序比如说输入2,rest2 = 0.5,但是出不来这个结果,感觉成了整个答案乘了正负1,不知道怎么解决。 //计算两个printf对应的式子
#include<stdio.h>
int s(int n);
int main(void)
{
double i;
int n;
printf("输入您的项数\n");
while (scanf_s("%d", &n) == 1 && n > 0)//让用户输入项数
{
double rest1 = 0.0;//初始化rest1
double rest2 = 0.0;//初始化rest2
for (i = 1; i <= n; i++)
{
rest1 += 1.0 / i;//计算rest1的值
}
for (i = 1; i <= n; i++)
{
rest2 += (1.0 / i) * s(i);//计算rest2的值,这里有问题 这里应该是 * s(i)
}
printf("1.0 + 1.0/2.0 + 1.0/3.0 +...的n项和为:%g\n",rest1);
printf("1.0 - 1.0/2.0 + 1.0/3.0 -...的n项和为:%g\n",rest2);
}
return 0;
}
ints(int n)
{
int a;
int sum = 1;
for (a = 1; a <= (n - 1);a++)
{
sum *= -1;
}
return sum;
} 大佬们我解决了~~,我还找到两个更简单的方法
页:
[1]