水培睡莲无土方法步骤:C语言问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 02:29:56
请问谭浩强的书里面有个例
【例2.1】求1×2×3×4×5。

最原始方法:

步骤1:先求1×2,得到结果2。

步骤2:将步骤1得到的乘积2乘以3,得到结果6。

步骤3:将6再乘以4,得24。

步骤4:将24再乘以5,得120。

这样的算法虽然正确,但太繁。

改进的算法:

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;否则,算法结束。
---------------------------------------------是不是换成英文就+上一些代码就是程序了?

差不多吧,按照这个思路,我写成这样:

#include <stdio.h>

void main(){
int t=1;
int i=2;
while(i<=5){
t*=i;
i++;
}
printf("1*2*3*4*5= %d\n",t);
}

我是一个专业的程序设计员
你讲的是程序设计中的第一步:分析过程。
这个过程很重要。
你应该时常锻炼这个能力。
因为大多数的程序员只会编写代码,
不会把自己的想法写出来。表达能力很差。
其实,编程最重要的就是找出合适的,正确的解决方法。
如果你能时常将你思考问题的方法用文字描述出来
的话,你将在学习中取得很大的进步。
如果你将你的思路用文字表达出来了,剩下的事情
就很简单了。只要顺着思路将程序写出来就行了。
写代码的事情其实只占所有工作量的30%,分析过程占了
70%。
所以,你很有潜力,如果你想在这方面发展的话
就好好用功,你会很有前途的。

main()
{
int t=1
for(i=2;i<=5;i++)
t=t*i
printf("结果为:%d",t)
}

其实两种方法一样的.只是第一个一数学表现形式.而第二个是C语言表现形式而已

或则用递归法:

#include<stdio.h>
#include<conio.h>
int fun(int i);
main()
{
fun(5);
printf("5!=%d\n",fun(5));
getch();
}

int fun(int i)
{int s;
if(i==1)
s=1;
else
s=i*fun(i-1);
return (s);
}

用指针可以达到最快的运算速度。