C语言学习经验(一)

这个系列是来讲述本人在学习C语言过程中遇到的一些问题,算是学习笔记吧。给初次学习C语言的同学借鉴一下。


题目:计算下列数列前20项的和:

2/1,3/2,5/3,8/5,13/8,21/13,······

题目分析:后一项的分子是前一项的分子分母之和,计算时可以累加

难点:1.数据的交换

            2。如何确定循环次数,以保证求得的和为确定项数之和

具体代码:#include "stdio.h"

int main()

{

float m,n,t,sum=0;

int i; n=1.0; m=2.0;

for(i=1;i<=1;i++)

{

sum+=m/n;

t=n+m;

n=m;

m=t;

}

printf("前20项和是%5.2f\n",sum);

}


解读:关于数据交换,本次代码中是以交换m和n的数据,需要引入一个变量t,暂时储存数据,因为一个变量的值赋给另外一个变量以后,数据就会丢失。如果没有中间变量t会出现怎样的结果呢?

#include "stdio.h"

int main()

{

int a,b;

a=1,b=2;

a=b;

b=a;

printf("%d,%d",a,b);

}


不加变量的结果如下图:


运行结果

结果并没有向我们预料的那样会将啊a和b的值直接交换,而是变成了一样的值,说明没有中间变量是无法完成交换的。

关于如何确定累加的项数,我们可以用for循环,确定一个变量i,用i来确定循环次数,循环的次数就是累加项数。

你可能感兴趣的:(C语言学习经验(一))