1樓:匿名使用者
for(i=2;i<=a-1;i++)
}==>
for(i=2;i<=a-1;i++)
2樓:汐日南莘
#include
int desk (int a);
void main()
int a,z;
scanf("%d",&a);
z=desk(a);
switch(z)
case 1:printf("%d不是素數\n",a);break;
default:printf("%d是素數\n",a);
int desk(int a )
int i,w=2;
for(i=2;i<=a-1;i++)//注意for迴圈if(a%i==0)//當a有因子時 w=1 且結束迴圈w=1;
break;
else if(i==a)//如果i=a還沒結束迴圈則表示a沒有因子則a是素數 w=2
w=2;
return(w);//返回w應該放在for迴圈外
3樓:
把你的break 改成continue試試吧。你break的時候跳出整個for迴圈了,w保持初始值0.使得你的switch走了default。
這就是4被誤判的原因。3倒是走進你的if(i<=a-1) 條件了,可惜,a=3 i=2時候進去的,導致w=1.
關於c語言中的疑惑
4樓:眾神足球
這個f是十六進位制的表示跟ascll字元沒關係
5樓:orange哦林君嚴
中的疑惑
1 分鐘前a619449011 | 分類:c/c++ | 瀏覽3次
printf("%x\n",-1),輸出為什麼
6樓:落魄
16進位制裡ffffff就是-1
7樓:帳號已經啟用
1111 1111 1111 1111 是-1的2進製表示
ffff 才是 -1 的十六進位制表示
關於C語言的,關於c語言的
i 表示先在語句裡引用i的值然後在自增1如int i 5,s s i i 那麼s就等於10 在此語句後i就等於7了 因自增了兩次!while a i a i 和while a i a i 1 i 在while括號內的成立了就執行迴圈內的語句不成立則不執行!第一句括號內的成立,所以執行下面的i 語句,...
關於C語言scanf 的問題,關於C語言scanf 的一個問題
回車 也是一個字元,編譯器把 回車 賦給了x。這也是使用字元特別之處要注意。另外編譯器有些智慧,先執行了scanf c x 再執行printf 請輸入x 而scanf c x 放在後面,回車 執行的是它原來特有的功能。在這個程式中的 printf 請輸入a scanf d a printf 請輸入x...
C語言的疑惑
y b b b 對這個式子,計算機要作兩次運算,1,b b 這時b 10,得到20。2,得到答案後現加 b 這時b 11,得到31。x a a a 同樣的,先作 a a a 8,得到16。由於這個表示式還沒完成,所以a還不能進行自加運算,要一直到這個表示式完成後才能自加,所以第二次加時,還加的是8,...