为了账号安全,请及时绑定邮箱和手机立即绑定

求教,为什么这个程序输入素数能有结果,输入非素数没反应,哪一步出问题了呢

求教,为什么这个程序输入素数能有结果,输入非素数没反应,哪一步出问题了呢

C++ C
bangmax 2015-10-25 01:31:26
#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 反对 回复 2015-10-25
  • 1 回答
  • 0 关注
  • 1295 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信