这是一个求素数的,为什么输入识别会说有一个警告,而且求好心人告知一下这个求素数的原理,有点混乱,老师讲的没太听明白。。。#include<stdio.h>#include<math.h>main(){ int n,i,k; scanf("%d",&n); k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i>=k+1) printf("yes"); else printf("no");}
自己做不出才按照老师的做法做的。。。初学者。。。,不过为啥把老师一模一样的输入电脑里会出警告呢?
追答sqrt函数返回一个double类型的值, k是一个int类型,显式转换就没警告了。强制转换(int)sqrt(n);
追问你好,请问那个sqrt前面为什么加(int)?这是规定吗,还是表示开方出来是整数,必须加吗?