

这个代码运营出来的结果是正确的,但是运行的时候一直显示编译错误,想请问一下这个是出现了什么问题
将变量flag改为int类型,或者增加bool的头文件<stdboo.h>即可。
修改如下:
参考链接:
C语言深度剖析——bool类型,浮点数相等比较。_c语言bool类型-CSDN博客
文章浏览阅读6.9k次,点赞43次,收藏44次。C语言中有很多类型,但是bool我们至今也没有见过。那到底C语言中到底有没有bool类型呢?我们之前聊过浮点数的在内存中的存储问题,由于浮点数在内存中比较特殊的存储结构,也造成了浮点数在判断相等的时候,有着比较特殊的比较方法。今天我们也就聊一聊这两个问题。_c语言bool类型
https://blog.csdn.net/qq_63943454/article/details/126711918
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
void zhi(int n){
// https://blog.csdn.net/qq_63943454/article/details/126711918
// 通过平台测试和参考链接, 因为bool是c99将_Bool类型使用宏写成的
// 所以这里,为了使用bool,需要增加它的头文件<stdbool.h>
// 如果不增加头文件,则可以将变量flag的类型改为int类型即可
//int flag=0;
bool flag=0;
// 因为题目提示,n大于1,所以这里的if-else语句可以去除
// if(n==1)
// printf("1");
// else{
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
printf("%d",i);
flag=1;
break;
}
}
if(flag==0)
printf("Yes");
//}
}
int main(){
int n;
scanf("%d", &n);
zhi(n);
}
