c语言 猜拳问题

Python011

c语言 猜拳问题,第1张

int win = player[0].hand

bool change = false

bool draw = false

for (int k = 1k <playersk++) {

if (player[k].hand + 1 == win || (player[k].hand == 2 &&win == 0)) {

if (change) {

printf("平局\n")

draw = true

break

} else {

win = player[k].hand

change = true

}

} else if (player[k].hand - 1 == win || (player[k].hand == 0 &&win == 2)) {

if (!change) change = true

}

}

if (!change) {

printf("平局\n")

draw = true

}

if (!draw) {

printf("player ")

for (int k = 0k <playersk++)

if (player[k].hand == win) {

player[k].winCount++

printf("%d ", k + 1)

}

printf("胜\n")

}

以上是课题一。

----------------------------------

以下是课题二。

printf("胜数 ")

int max = 0

for (int k = 0k <playersk++) {

if (player[k].winCount >max) max = player[k].winCount

printf("%d胜 ", player[k].winCount)

}

printf("\nplayer ")

for (int k = 0k <playersk++) {

if (player[k].winCount == max) printf("%d ", k + 1)

}

printf("胜\n")

------------------------------------

以上代码纯手打,请自行编译,出现问题欢迎追问。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

int rand_0(void)

int game(int inp)

int start,yes=1,inp,inp_1=1 char y

while(yes)/*预防用户输入1或2以外的数据*/

{

printf("1:开始游戏\n2:排行榜\n")

scanf("%d",&start)

if((start!=1)&&(start!=2))

{

printf("请输入1或2\n")

}

else

yes=0

}

start:

if(start==1)/*如果用户选择开始游戏……*/

{

printf("你出?\n1:石头\n2:剪刀\n3:布\n")

while(inp_1) /*预防用户输入别的数据*/

{

scanf("%d",&inp)

if((inp!=1)&&(inp!=2)&&(inp!=3))

{

printf("你出?\n1:石头\n2:剪刀\n3:布\n")

}

else

{

inp_1=0

switch(game(inp))

{

case 1:printf("\n\n恭喜你,你赢了!\n\n")break

case 0:printf("\n\n很遗憾,你输了!\n\n")break

case 2:printf("\n\n平局\n\n")break

}

}

}

}

inp_1=1

printf("\n\n是否重新开始游戏?(y/n)")

scanf("%s",&y)

if((y=='y')||y=='Y')

goto start

else

return 0}

int rand_0(void) /*取随机数*/

{

int i,rand_1

srand((unsigned)time(NULL))

for(i=1i<=10i++)

{

rand_1=rand()%4

if(rand_1==0) continue

return(rand_1)

}

}

int game(int inp)

{

int random,win /*win变量,1是赢,2是平,0是输*/

random=rand_0()

switch(inp)

{

case 1:if(random==3) return win=0

else if(random==2) return win=1

else return win=2

case 2:if(random==3) return win=1

else if(random==2) return win=2

else return win=0 case 3:if(random==3) return win=2

else if(random==2) return win=1

else return win=0

}

}就做了那么点点。。。