有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和。

来源:互联网 发布:刀具路径模拟软件 编辑:程序博客网 时间:2024/05/29 01:56
#include <stdio.h>
int main()
{
int i, j, n;
float sum = 0, A = 1, B = 2, tmp;
printf("Please input a number:");
while(1)
{
if(scanf("%d",&n) != 1 || getchar() != '\n')
//判断输入函数的返回值是否为1,如果为1,表示输入的格式正确

//判断输入的数值后是否是换行符,如果是,这表明输入正确 

{
printf("Input error, Please input again\n");
while(getchar() != '\n');//清除输入缓冲区中的非法字符 
//getchar的返回值就是每次冲缓冲区中提取一个字符 
continue;//跳出if语句,重新执行while循环 
}
break;//当满足上面的条件时,直接结束while循环 
}
for(i = 1; i <= n; i++)//循环n次 
{
sum += B / A;//累加数值 
tmp = B;
B = A + B;//将前一项的分子分母的和作为后一项的分子 
A = tmp;//将前一项的分子作为后一项的分母 
}
printf("The result is:%f\n",sum);
return 0;
1 0
原创粉丝点击