[問題] do-while的時好時壞

看板C_and_CPP (C/C++)作者 (SuperEel)時間16年前 (2009/09/18 14:21), 編輯推噓3(309)
留言12則, 4人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> #include<windows.h> #include <time.h> int main(){ int key,num,i; printf("運用你的手指來測測今天的運氣喔!!(等等請隨機按ENTER)\n"); Sleep(2000); system("cls"); do { srand(time(NULL)); key = (rand()%100)+1; num = (rand()%5)+1; switch(num){ case 1: printf("."); break; case 2: printf(".."); break; case 3: printf("..."); break; case 4: printf("...."); break; case 5: printf("....."); break; } }while(GetKeyState(13)>0); return 0; } 這是我一部分的程式碼 但為啥這個do-while會不能跑呢???? 有時候可以跑有時候又不能跑 可以告訴我打do-while需要注意些甚麼嗎??? 感謝各位大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.20.187

09/18 14:24, , 1F
srand放在do while上面跑一次就夠了....
09/18 14:24, 1F

09/18 14:25, , 2F
你的key取亂數也沒拿來用, i變數也沒用到....
09/18 14:25, 2F

09/18 14:25, , 3F
while為什麼不會跑, 可能要請你去搞清楚GetKeyState().
09/18 14:25, 3F

09/18 14:38, , 4F
key跟i我後面才會用到= =!所以我才說是一部分
09/18 14:38, 4F

09/18 14:38, , 5F
還是感謝大大
09/18 14:38, 5F

09/18 14:47, , 6F
err~~好吧, 那就不要理我....(掩面)
09/18 14:47, 6F

09/18 14:56, , 7F
你Sleep(2000)之前加上 while(GetKeyState(13)<0);
09/18 14:56, 7F

09/18 14:57, , 8F
讓enter初始化為 on..然後把while裡的 >改成>=
09/18 14:57, 8F

09/18 14:57, , 9F
我試了幾次是沒問題..不過這種問題應該自己去想...= =||
09/18 14:57, 9F

09/18 14:58, , 10F
寫程式應該要去google一下reference
09/18 14:58, 10F

09/18 14:59, , 11F
我也只是想跟你說有這個 GetKeyState的函式
09/18 14:59, 11F

09/19 02:32, , 12F
恕我無知.我以為在這裡用getche()就可以了.不能用嗎?
09/19 02:32, 12F
文章代碼(AID): #1AioRO3k (C_and_CPP)
文章代碼(AID): #1AioRO3k (C_and_CPP)