测试数据由多组,处理到文件尾。每组测试输入一个正整数n(2≤n≤20)这个条件该怎么表示出来还有想知道代码具体是怎么样的
多组数据用while( scanf("%d",&n)!=EOF) 即可
代码如下:
#include <stdio.h>
double fib(int n)
{
double sum = 0;
int i;
int a = 2, b = 1, t;
if (n == 1)
return 2;
sum = 2.0;
for (i = 2; i <= n; i++)
{
t = a + b;
b = a;
a = t;
sum += 1.0 * a / b;
}
return sum;
}
int main()
{
int n;
double s;
while (scanf("%d", &n) != EOF)
{
s = fib(n);
printf("%.6lf\n", s);
}
return 0;
}
处理到文件为就是判断输入为EOF
#include <stdio.h>
int main()
{
int fz = 2;
int fm = 1,i,t;
double sum = 0;
int n;
while(scanf("%d",&n) != EOF)
{
fz = 2;
fm = 1;
sum = 0;
for(i=1;i<=n;i++)
{
sum += fz*1.0/fm;
t = fm;
fm = fz;
fz += t;
}
printf("%.6lf\n",sum);
}
return 0;
}