我的for循环有什么问题?

明明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= 1for(int j=1;j<=x;j++)
sum=sum*u;
return sum;
}

否则就会造成不断的在一个数上做乘法,最后导致int溢出,int为有符号的,溢出后有可能是负数,然后循环就结束了