级数求和 C语言程序
答案:6 悬赏:0 手机版
解决时间 2021-05-10 15:24
- 提问者网友:做自己de王妃
- 2021-05-09 15:25
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int k,n=1;
float s;
s=0.0;
scanf("%d",&k);
while(s<=k)
{
s=s+(float)1/n;
n++;
}
printf("%d\n",n-1);
fflush(stdin);
getchar();
return 0;
}
帮忙看看哪里错了~
最佳答案
- 五星知识达人网友:思契十里
- 2021-05-09 15:35
#include<stdio.h>
#include<stdlib.h>
int main()
{
int k,n=1;
float s;
s=0.0;
scanf("%d",&k);
while(s<=k)
{
s=s+(float)1/n;
n++;
}
printf("%f\n",s);//你写的没错,加这个验证下吧
printf("%d\n",n-1);
fflush(stdin);
getchar();
return 0;
}
全部回答
- 1楼网友:舍身薄凉客
- 2021-05-09 19:43
单纯讲逻辑是对的,可是……int是有范围的,最大的int也不够你这么算的,n加着加着就成负的了,再加下去就变0直接悲剧了。
你可以在while加条件当n小于0的时候输出个什么看看。
饭客网络。 专业的编程团队 VIP教程免费试看!!!
- 3楼网友:低音帝王
- 2021-05-09 19:12
可以执行啊,也没什么问题,有点就是fflush(stdin); 这句不是标准的,一致性不好,不过在VC6.0下可以正常执行的
- 4楼网友:几近狂妄
- 2021-05-09 18:10
没限制k的范围
#include<stdio.h>
#include<stdlib.h>
int main()
{
int k,n=1;
float s;
s=0.0;
scanf("%d",&k);
while(s<=k)
{
if(k<1||k>15)printf("请输入适合范围的k值");break;
s=s+(float)1/n;
n++;
}
printf("%d\n",n-1);
fflush(stdin);
getchar();
return 0;
}
帮忙看看哪里错了~
printf("%f\n",s);//你要输出n干吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯