#include<stdio.h>#include<math.h>int main(){ int n,w=0,i=2; printf("输入一个大于或等于3的整数: "); scanf("%d",& n); do { int r=n%i; if(r==0) {int w=1;} else i+=1; }while(w==0&&i<=sqrt(n)); if(w==0) printf("其是素数\n"); else printf("其不是素数\n"); return 0;}
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
do 中的 if(r==0) 后面,你写成了 int w = 1; 这相当于在if中重新定义了一个叫w的int变量,这个w与外面那个w不是同一个变量。 而你最后在 if (w == 0) 这里判断的是main函数开头的那个w,这个w的值显然一直是0。
解决方法就是去掉12行 w开头的那个int。
- 1 回答
- 0 关注
- 1295 浏览
添加回答
举报
0/150
提交
取消