实验五:循环结构
1.知识点:
(1)do while语句其实可理解为实行do后面的式子while(直到) i 到哪截止就停止计算,while语句则需要 i 来控制它的范围,for语句也需要 i 来控制它的范围。
(2)求阶乘时是用fact(i)函数来求,可是朋友告诉了我一种别的方法:
i++;
sum=sum*i;
其实这样做也是和阶乘的原理是一样的,不过就不用写那么多了;
用阶乘是这样子写的:
#include<stdio.h>
double fact(int n);
int main(void)
{
int i,n=10;
double result,sum;
sum=0;
for(i=1;i<=n;i++){
result=fact(i);
printf("%d!=%.0f\n",i,result);
sum=sum+fact(i);
}
printf("1!+2!+...+10!=%.0lf\n",sum);
return 0;
}
double fact(int n)
{
int i;
double product;
product=1;
for(i=1;i<=n;i++){
product=product*i;
}
return product;
}
而用那种简单的方法,式子就比上面的少多了:
#include<stdio.h>
int main()
{
double sum1=1,sum2=0,i;
while(i<10){
i++;
sum1=sum1*i;
printf("%.0lf!=%.0lf\n",i,sum1);
sum2=sum2+sum1;
}
printf("1!+2!+...+10!=%.0lf",sum2);
return 0;
}
这就是聪明人和非聪明人的区别了吧hehe...
(3)斐波那契(Fibonacci)序列这个题老师上课讲了,利用do while循环可以使得X1,X2变换数值直到达到 i 的最大数即题目要求数字.
(4)如果要求式子变换,需要带入中间数值去变换,再转换,比如:
for(i=0;i<n;i++){
sum=sum+flag/denominate;
t=flag;
flag=flag+denominate;
denominate=t;
}
2.实验过程中遇到的问题及解决方法:
(1)数学计算表达式不能更为简单地表述,数学问题...
3.实验心得体会:
(1)需要多练多想,大胆去猜测然后实践,还要记清楚各种语句的表示方法...
浙公网安备 33010602011771号