C语言中定义函数的问题

问题遇到的现象和发生背景

为什么调用了sqrt函数后会导致直接跳过循环

问题相关代码,请勿粘贴截图

int su(int x)
{
int y = 0;
for (y = 2; y < sqrt(x); y++)
{
if (x % y == 0)
{
return 0;
}
}
return 1;
}

运行结果及报错内容

输出从100到200的数字

我的解答思路和尝试过的方法

改变地址

我想要达到的结果:判断是不是素数

说明你传入的x值是错误的,应该小于4

看你的功能了 这里是简单测试:

img

代码没毛病,你自己写的,如果y< sqrt(x) 就退出循环,你确认下 y 和x 的值