#include
void main()
{
double a=2,b=1,sum;
int n,i;
printf("Input n: ");
scanf("%d",&n);
for(i=0;i<=n;n++)
{
b=a;
a=a+b;
sum=sum+a/b;
}
printf("%lf",sum);
}
入一个正整数n,输出2/1 + 3/2 + 5/3 + 8/5 + …的前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)。
【输入形式】
从键盘输入一个正整数n。
【输入输出样例1】(下划线部分表示输入)
Input n: 20
s=32.66
【样例说明】
输入提示符后要加一个空格。其中“:”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。必须严格按样例输入输出。
修改如下,供参考:
#include<stdio.h>
void main()
{
double a=2,b=1,sum=0;//修改
int n,i;
printf("Input n: ");
scanf("%d",&n);
for(i=0;i<n;i++) //for(i=0;i<=n;n++)
{
sum=sum+a/b; //修改
a=a+b; //修改
b=a-b; //修改
}
printf("s=%.2lf",sum);//printf("%lf",sum); 修改
}
sum没有给初值哦!定义的时候应该给个初始值零的!
第9行,应该是i++,而不是n++
错误点第九行应为i++;
#include<stdio.h>
void main() {
double a = 2,b = 1, sum;
int n;
printf("Input n: ");
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
b = a;
a = a + b;
sum = sum + a / b;
}
printf("%.2lf", sum);
}
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int a = 2 * i + 1;
int b = 3 * i + 1;
int c = 5 * i + 1;
int d = 3 * i + 2;
int e = 5 * i + 2;
sum += a / (a + b + c + d + e);
}
printf("2/1 + 3/2 + 5/3 + 8/5 + ...的前%d项之和为:%.2lf\n", n, sum);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: