m0_64134422 2022-03-23 19:03 采纳率: 40%
浏览 36

我的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);

}

  • 写回答

1条回答 默认 最新

  • stone_wangzx 2022-03-23 19:23
    关注

    chengfang这个函数写的有问题应该修改为

    int chengfang(int u,int x )
    {
    sum= 1for(int j=1;j<=x;j++)
    sum=sum*u;
    return sum;
    }
    
    

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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月23日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真