[問題] 小遊戲大問題

看板C_and_CPP (C/C++)作者 (ㄚ春)時間16年前 (2009/04/03 22:34), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/2 (看更多)
#include <stdio.h> #include <stdlib.h> #include<time.h> int main() { srand(time(NULL)); int n=rand()%3+1; int s; float w=0,l=0,n1; printf("請輸入你要的局數(一場)\n"); scanf("%d",&n1); n1=(n1+1)/2; do { printf("%d",n); printf("(1剪刀 (2石頭 (3布\n"); printf("請輸入你的選擇\n"); scanf("%d",&s); if(n==1&&s==1) printf("平手唷!!!\n"); else if(n==1&&s==2) { printf("你贏囉!!\n"); w=w+1; } else if(n==1&&s==3) { printf("你輸囉!!!\n"); l=l+1; } else if(n==2&&s==2) printf("平手唷!!!\n"); else if(n==2&&s==1) { printf("你贏囉!!\n"); w=w+1; } else if(n==2&&s==3) { printf("你輸囉!!!\n"); l=l+1; } else if(n==3&&s==3) printf("平手唷!!!\n"); else if(n==3&&s==2) { printf("你贏囉!!\n"); w=w+1; } else if(n==3&&s==1) { printf("你輸囉!!!\n"); l=l+1; } }while(w==n1||l==n1); if(w==n1) printf("你贏了此局\n"); else if(l==n1) printf("你輸了此局\n"); system("pause"); return 0; } 這個我的用意是想要假如輸入5局 代表要3戰兩勝 我的迴圈好像出了問題 輸入5場 跳進回圈 結果玩了一局 就跳了 可以幫我看看我的迴圈哪裡出了問題嗎?? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.84.253

04/03 22:36, , 1F
打錯是5戰3勝
04/03 22:36, 1F

04/03 22:45, , 2F
你的w ni l是float 第一次判斷時, 條件不會成立
04/03 22:45, 2F

04/03 22:46, , 3F
你的while( w==n1 || l==n1)判斷條件寫錯了。
04/03 22:46, 3F

04/03 22:46, , 4F
所以要改成int??
04/03 22:46, 4F

04/03 22:47, , 5F
是喔 @@那t大請問怎麼改??
04/03 22:47, 5F

04/03 22:50, , 6F
改用int while( w<n1 && l<n1)
04/03 22:50, 6F

04/03 22:54, , 7F
打錯 while(w <= n1 && l <=n1)
04/03 22:54, 7F

04/03 22:56, , 8F
OK 感謝你的幫忙 您讓我的作業前進了一步
04/03 22:56, 8F

04/03 22:56, , 9F
啊~~~ w<n1 && l<n1 才對...
04/03 22:56, 9F
文章代碼(AID): #19rXvc3J (C_and_CPP)
文章代碼(AID): #19rXvc3J (C_and_CPP)