C语言初级编程问题,求助!

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:26:06
//用for循环完成1*2*3*.....10的积

#include <stdio.h>

void main()
{
int a=1,b=10;
for(;a<=10;)
{
b=b*a;
a=a+1;
}
printf("b=%d",b);

}
我数学不好
b=b*a;
a=a+1;
这个表达式3用最笨的方法来写一下好吗?
我看不明白上面的.谢谢谢谢!我是初学者到循环这走不动了.
再谢!分少了可是我只有这些了.

我先说一下你这个程序的一个错误的地方吧..
你那个程序算出来的是1*2*3*4*5*6*7*8*9*10*10的结果
如果把那个a<=10其中的等号去掉..
那程序就对了..
至于你说你不理解那两个表达式...
我觉得你自己应该先用笔自己先算一遍..
也就是说你把程序先自己执行一遍...
FOR循环你应该知道是怎么循环的吧...
你要记住..第一次循环后...
那个b的值的就变了..
不再是原来的10了..
至于那个a=a+1;
就是用来使循环变量加1的..
也可以说是用来限制循环的次数..
每循环一次.a就加1
如果没有那个的话
就会出现无休止的循环..
也就是我们所说的死循环

如果是求1到10的乘积的话,这段代码是错的

可以参考下面
#include<stdio.h>
void main()
{
int a,b=1;
for(a=1;a<=10;a++)
{
b=b*a;
}

printf("b=%d",b);
}

a++的意思是在调用后自身加1
首先进入循环,初始值a=1,经过条件判断满足a<=10,进入语句块,执行b=b*a,b的初始值也是1,所以第一次的计算结果b还是1,然后返回执行a++,a经过自加后变为2,仍满足a<=10,所及继续执行b=b*a;刚才算得b=1,经过自加的a变为了2,所以这里b=b*a应看作b=1*2,如此循环,第三次经过判断后所执行的应该是b=2*3,第四次b=6*4

这样一直到a不满足a<=10后跳出循环,执行printf

int b=1;
for(int a=1;a<=10;a++)
{
b=b*a;
}
这说是最笨的方法了..