看板 C_and_CPP 關於我們 聯絡資訊
#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
a1013944:打錯是5戰3勝 04/03 22:36
tsaiminghan:你的w ni l是float 第一次判斷時, 條件不會成立 04/03 22:45
tsaiminghan:你的while( w==n1 || l==n1)判斷條件寫錯了。 04/03 22:46
a1013944:所以要改成int?? 04/03 22:46
a1013944:是喔 @@那t大請問怎麼改?? 04/03 22:47
tsaiminghan:改用int while( w<n1 && l<n1) 04/03 22:50
tsaiminghan:打錯 while(w <= n1 && l <=n1) 04/03 22:54
a1013944:OK 感謝你的幫忙 您讓我的作業前進了一步 04/03 22:56
tsaiminghan:啊~~~ w<n1 && l<n1 才對... 04/03 22:56