c语言..看不懂啊,,help~~

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:15:08
main()
{
int i;
for(i=1;i<10;i++)
printf("%5d%5d%5d\n",i,power(2,i),power(-3,i));
}

power(int x,int n)
{
int p;
for(p=1;n>0;--n)
p=p*x;
return(p);}

power那完全不理解啊..高手赐教..望能耐心解答...感激不尽...!
n是i的形参么?
为什么i++ n--
不懂n--是什么意思..从多大开始-的..
还有p=1..为什么p不自加或自减呢?
power(int x,int n)
{
int p;
for(p=1;n>0;--n)
p=p*x;
return(p);}
很是不理解啊...
麻烦大家了,,

一个一个给你讲:

(1)n是i的形参;

(2)至于为什么i++,那是根据题目的需要而出的算法,若是题目有别的要求i--或++i都可以

第一次for循环 i=1开始 i<10请注意,我把i值带入了输出语句,
printf("%5d%5d%5d\n",i,power(2,1),power(-3,1));
然后执行i++,i值自增1,即i=i+1,i增值为2

第二次for循环 i=2开始 i<10
printf("%5d%5d%5d\n",i,power(2,2),power(-3,2));
然后执行i++,i值自增1,即i=i+1,i增值为3

第三次for循环 i=3开始 i<10
printf("%5d%5d%5d\n",i,power(2,3),power(-3,3));
然后执行i++,i值自增1,即i=i+1,i增值为4

。。。
..

第九次for循环 i=9开始 i<10
printf("%5d%5d%5d\n",i,power(2,9),power(-3,9));
然后执行i++,i值自增1,即i=i+1,i增值为10

第九次for循环 i=3开始 i=10,不符合i<10要求,退出。

每次printf输出都有power(2,3),power(2,4)...........
这时候就应该调用power(int x,int n)
{
int p;
for(p=1;n>0;--n)
p=p*x;
return(p);}
这个函数

(3)你问n是从多大开始的,每次调用power(int x,int n) 函数的时候,就是把i值传递给n带入power(int x,int n)函数中运算,power(int x,int