c语言的递归思想,弄的我好烦

来源:百度知道 编辑:UC知道 时间:2024/06/28 02:49:07
比如说1+到100
定义一个i 和 sum
i初值为0 sum 初值也为0
然后用while语句加 循环格式中{ i++ ,sum=sum+i} 和{ sum= sum+i, i++}之间有啥区别? 请详细说说呀,我是新手,对这方面不是很懂,拜托啦! 再就是递归思想的主要要掌握什么?
啊哦!刚刚看到提问上面有和我差不多的问题,说递归,我也就拿来用了下,呵呵,新手啊,不懂哟,别见怪哈!

我知道后面一个是到101,但是具体思路我还不清楚哦!哪位大侠能具体讲讲啊,说的好的我会考虑加分滴哟!! ^_^ !

两者的区别在于i自加和sum求和的顺序,前者是先i自加,后sum求和,后者则相反。由于顺序不同,循环条件也不同,前者循环条件是:i<100,i为99的时候是最后一次循环,进入循环后,i自加,i为100,再加到sum中,完成了一到100的加和,此时i为100,不符循环条件,跳出循环。
后者的循环条件是i<=100,i为100的时候是最后一次循环,进入循环,i加到sum中,完成了1到100的加和,再执行i++,i为101,不符循环条件,跳出循环。

楼主要注意逗号和分号的用法:语句要求用分号结尾,逗号是运算符。
{i++;sum=sum+i;}和{sum=sum+i;i++;}主要是运算顺序不同,循环语句可能不同
i++,sum=sum+i;和sum=sum+i,i++;区别就太大了

求1+2+3+...+100=?
i=0;sum=0;
(1)while(i<100){i++;sum=sum+i;}printf("sum=%d\n",sum);
(2)while(i<=100){sum=sum+i;i++}printf("sum=%d\n",sum);
(3)while(i<100){i++,sum=sum+i;}printf("sum=%d\n",sum);
(4)while(i<=100){sum=sum+i,i++;}printf("sum=%d\n",sum);
(1)输出5050
(2)输出5050
(3)输出5050
(4)输出100

这个不叫递归的
递归算法一般用在调用函数的
还有在 while(i<=100)这样的条件下
{ i++ ,sum=sum+i} 和{ sum=sum+i,i++}之间是有区别的
但是退出循环后i都是等于101,拜托1楼2楼两位大虾说清楚 还有3楼的4个式子得出的结果都是一样的
不要再炫你那逗号和分号的用法
4楼的你能在条件为while(i&l