一个C语言的算法 会的进。。。

来源:百度知道 编辑:UC知道 时间:2024/06/24 12:34:05
S1: 使t=1

S2: 使i=2

S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t

S4: 使i的值+1,即i+1→i

S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
我刚学 自认为数学学的不错可这个就是不理解 请用白话解释下谢谢了 尤其是S4和S5这步
我知道结果是这样 书上有写 我是不理解才问 你却又要我自己去理解 ~~晕~~~~~~~

int t=1;
int i;
for(i=2;i<=5;i++){t=t*i;}

算法如上
我给你解释下
for(i=2;i<=5;i++){t=t*i}执行顺序

首先执行i=2 然后判断i<=5 如果正确 执行t=t*i; 接着执行i++使i的值加1 然后回到上面 判断i<=5..过程循环,直到i>5 判断知不正确 执行不正确的操作-退出

实现的结果就是:
t=1*2*3*4*5
自己好好看看吧 ,为什么这样

定义static变量,应该是可以的.

s4就是给变量每执行一次自身加一!
s5可用一个for语句执行!!!
#include stdio.h
void man()
{
int t=1,i;
for(i=2;i<=5;i++)
t=t*i;
printf("t=%d",t);
}

拿来下分,

程序执行过程:
s1:int t=1;
s2:int i=2
s3:t=t*i=1*2;
s4:i++;
s5:i=3<=5;
s3:t=t*i=1*2*3;
s4:i++;
s5:i=4<=5;
s3:t=t*i=1*2*3*4;
s4:i++;
s5;i=5<=5;
s3:t=t*i=1*2*3*4*5;
s4:i++;
s5:i=6!<=5;
end

for(i=2[a],i<=5[b],i++[c])
t*=i[d];

s2给定初始i值,对应[a]
s3为循环执行语句,对应[d]
s4中i自加,对应[c]
s5通过i<=5判断循环次数,对应[b]