引用 | 編輯
aaaasszx
2011-08-28 22:27 |
樓主
▼ |
||
x0
請問錯誤在哪偵錯一直卡住 #include<stdio.h> #include<stdlib.h> int main(void) { int a; .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
ebolaman
2011-08-29 01:05 |
1樓
▲ ▼ |
修改成底下程式碼即可
複製程式 int main(void) { int a; printf("輸入你信用卡前兩碼來測試是不是Visa的\n"); scanf("%d",&a); if (a==45||a==46) printf("你是Visa的"); else printf("你不是Visa的"); system("pause"); return 0; } 錯誤的地方: (1) pruntf >> printf (2) if (a=45,46); >> if (a==45||a==46) if 判斷句子後面不可以加 ; C++中的 ; 是給編譯器判斷結束的地方,不像 VB 是以換行符號,不過既然前面已經偵測到 if ,那就不用多說,因為判斷的式子已經被括號 () 給夾住了,因此不用麻煩加上 ; 給編譯器知道 (3) a=45,46 >> a==45||a==46 = 符號是指定的用法,如果要判斷某個東東 是不是 某個西西,要用兩次等於 == 而可以加上 || (只要值不是 0 的都當成 True) 這是 Or 的用法,其實這邊也可以用 | (這是二進位的用法) 還有原本的打法 if(a=45,46) 整個會傳回 a 也就是 45 因為括號內先指定 a 的值是 45,然後整個括號再傳給 if 的值就是 45 也就當成成立 (True),因此之前不管輸入什麼數字都會判斷成 是 x1 |