#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 關注
- 1332 瀏覽
添加回答
舉報
0/150
提交
取消