明明chengfang(10,3)为1000,chengfang(10,4)为10000,为什么只循环了两次就结束了呢?
#include<stdio.h>
int sum=1,y,u,,k;
int chengfang(int u,int x )
{
for(int j=1;j<=x;j++)
sum=sum*u;
return sum;
}
int main()
{
for(int i=chengfang(10,5);i<chengfang(10,6);i++)
{
k++;
}
printf("%d",k);
}
chengfang这个函数写的有问题应该修改为
int chengfang(int u,int x )
{
sum= 1;
for(int j=1;j<=x;j++)
sum=sum*u;
return sum;
}
否则就会造成不断的在一个数上做乘法,最后导致int溢出,int为有符号的,溢出后有可能是负数,然后循环就结束了