[問題] c語言 switch

看板C_and_CPP作者 (鴨子)時間15年前 (2010/05/09 03:06), 編輯推噓3(309)
留言12則, 5人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) switch 選擇 程式跑出來的錯誤結果:直接執行裡面的else... 開發平台: Dev-C++, Windows 有問題的code: (請善用置底文標色功能) #include<stdio.h> #include<stdlib.h> int main() { int x; char w; printf("選擇所要進行之函數\n"); printf("1.大小寫變換\n任一鍵離開本程式\n"); scanf("%d",&x); switch(x) { case 1: printf("請輸入英文 本程式將進行大小寫轉換\n"); scanf("%c",&w); if((w>='A')&&(w<='Z')) { printf("%c",w+32); system("pause"); return 0; } else if((w>='a')&&(w<='z')) { printf("%c",w-32); system("pause"); return 0; } else { printf("你輸入的不是英文喔!!\n"); system("pause"); return 0; } break; default:printf("......掰掰\n"); system("pause"); break; } } 補充說明: 選1後 直接跑出"你輸入的不是英文喔!!" 請問是scanf 錯誤還是 switch 錯誤? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.27.60.46 ※ 編輯: superduck 來自: 163.27.60.46 (05/09 11:07)

05/09 11:16, , 1F
scanf(" %c", &w);? 很久沒用scanf了不確定 XD
05/09 11:16, 1F

05/09 11:19, , 2F
這樣直接跳掰掰了喔...更慘XD
05/09 11:19, 2F

05/09 11:23, , 3F
請參考 #1BCFyc8h
05/09 11:23, 3F

05/09 11:33, , 4F
好了 謝謝樓上2位 我還傻傻的改錯XD
05/09 11:33, 4F

05/09 11:34, , 5F
第一個 scanf("%d\n", &x); 試試看 XD
05/09 11:34, 5F

05/09 11:35, , 6F
所以是scanf前面有\n 會被scanf自動吃掉?
05/09 11:35, 6F

05/09 11:36, , 7F
樓上妳說的不行喔XD 他會直接 下一個scanf
05/09 11:36, 7F

05/09 11:36, , 8F
printf("請輸入英文 本程式將進行大小寫轉換\n");
05/09 11:36, 8F

05/09 11:36, , 9F
這行就沒出現了
05/09 11:36, 9F

05/09 11:36, , 10F
直到最後才出現
05/09 11:36, 10F

05/09 14:13, , 11F
...這是歐●原的作業嗎
05/09 14:13, 11F

05/09 19:50, , 12F
陽嗎XD 我自己很閒在寫的...
05/09 19:50, 12F
文章代碼(AID): #1BvYQTQH (C_and_CPP)