C语言循环问题!有谁知道这个是什么原因造成的?

最近在学C语言,发现循环条件不起作用啊,有知道的小伙伴能够解决解决这个问题?代码及运行结果如下:

img

img

这个循环条件未必能判断到,还是在里面用if判断,如果符合条件就break 出循环

scanf_s()函数返回的不是读取的数据的值,而是读取的数据的个数,因为在你的代码里只读取一个数字,所以在没有输入错误的情况下这个返回值永远是1,所以scanf()==1就永远成立。
如果想要退出,需要在你的whle中添加判断,比如想要输入-1时结束循环,那么:
while(scanf_s("%d",&num))
{
if(num == -1) break; //判断输入的值是否是-1
//剩下的是原来的代码
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^