当前位置:首页 » 编程语言 » c语言三个骰子
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言三个骰子

发布时间: 2022-10-03 01:10:06

1. c语言问题,求助。掷骰子。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intfunc(){
inta,b;
a=rand()%6+1;
b=rand()%6+1;
if(a==b&&a==6){
return8;
}elseif(a==b){
return7;
}else{
return(a<b?a:b);
}
}
voidmain(){
intsumA,sumB,i;
sumA=sumB=0;
srand(time(0));
for(i=0;i<10;i++){
sumA+=func();
sumB+=func();
if(i==4){
if(sumA>1.3*sumB){
printf("A:%d B:%d 5局A获胜 ",sumA,sumB);
return;
}elseif(sumB>1.3*sumA){
printf("A:%d B:%d 5局B获胜 ",sumA,sumB);
return;
}
}
}
if(sumA>sumB){
printf("A:%d B:%d 10局A获胜 ",sumA,sumB);
}elseif(sumB>sumA){
printf("A:%d B:%d 10局B获胜 ",sumA,sumB);
}else{
printf("A:%d B:%d 平局 ",sumA,sumB);
}
return;
}

2. 与电脑玩掷骰子游戏,游戏规则如下:每次掷三个骰子计算总点数,先由电 脑坐庄,庄家输了换庄,一局游戏

假定题目的意思是比较两个人骰子的大小。
1 #include <stdio.h>
2 #include <math.h>
3 int main()
4 {
5 int player_a,robot_b,win_round,lost_round,
6 round,start;
7 float winrate;
8 start=1;
9 win_round=0;
10 lost_round=0;
11 round=0;
12 while(start>0)
13 {
14 round++;
15 player_a=rand()%18+1;
16 robot_b=rand()%18+1;
17 if(player_a>robot_b)
18 win_round++;
19 else if(player_a<robot_b)
20 lost_round++;
21
22 printf("\nTotal round is %d\n",round);
23 printf("Round of win is %d\n",win_round);
24 printf("Round of lost is %d\n",lost_round);
25 printf(" Rating of winning is %.1f%\n",win_round/(round*0.01));
26 printf("****continue??****\n");
27 printf("input 0 to exit\n");
28 scanf("%d",&start);
29 }
30 }

3. 三个骰子投出的数目共有多少种组合请给出具体算法

三个骰子点数各不相同:C(6,3)三个骰子点数有两个相同,另外一个不同:C(6,2)×2三个骰子点数都相同:C(6,1)一共有C(6,3)+C(6,2)×2+C(6,1)=20+30+6=56种组合

4. c语言,骰子程序

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
introllDie(void)
{
returnrand()%6+1;
}
voiddrawDic(int*pdic,intn)
{
inti,sum=0;
for(i=0;i<n;i++)
{
pdic[i]=rollDie();
}
for(i=0;i<n;i++)
{
printf("----");
}
printf(" ");
for(i=0;i<n;i++)
{
printf("|%d|",pdic[i]);
sum+=pdic[i];
}
printf(" ");
for(i=0;i<n;i++)
{
printf("----");
}
printf(" sum=%d ",sum);
}
intmain()
{
intdic[100];
intn=1;
inti;
printf("输入骰子数目:");
scanf("%d",&n);
srand(time(0));
drawDic(dic,n);
return0;
}

结果:

5. 大一C语言oj题,答案错误百分之五十,看了好久没看出错误,求大佬帮帮忙,万分感谢

#include <stdio.h>

int judgebaozi(int a,int b,int c){
if(a==b&&b==c)
return a;
else return 0;
}
int judgeizi(int a,int b,int c){
if(a==b||a==c)
return a;
else if(a!=b&&a!=c&&b!=c)
return 0;
else return b;
}
int judgedianzi(int a,int b,int c){
return a+b+c;
}
int judge1(int a,int b,int c){
if(a==b)
return c;
else if(a==c)
return b;
else if(b==c)
return a;
}

int main()
{
int a1,a2,a3,a4,a5,a6,k,m,o,p,q,r,s,t,j;
int data[9000][6];
scanf("%d",&k);
for(m=0;m<k;m++)
for(j=0;j<6;j++)
scanf("%d",data[m]+j);

for(m=0;m<k;m++){
a1=data[m][0];
a2=data[m][1];
a3=data[m][2];a4=data[m][3];a5=data[m][4];a6=data[m][5];
o=judgebaozi(a1,a2,a3);
p=judgebaozi(a4,a5,a6);
q=judgeizi(a1,a2,a3);
r=judgeizi(a4,a5,a6);
s=judge1(a1,a2,a3);
t=judge1(a4,a5,a6);
if(o!=0&&p!=0){
if(a1==a4)
printf("Draw\n");

else if(a1==1)
printf("lcy\n");
else if(a4==1)
printf("Ypop\n");
else if(a1>a4)
printf("lcy\n");
else
printf("Ypop\n");
}

else if(o!=0)
printf("lcy\n");

else if(p!=0)
printf("Ypop\n");

else if(q!=0&&r!=0){
if(q==r){
if(s==t)
printf("Draw\n");

else if(s==1)
printf("lcy\n");
else if(t==1)
printf("Ypop\n");
else if(s>t)
printf("lcy\n");
else
printf("Ypop\n");
}
else if(q==1)
printf("lcy\n");

else if(r==1)
printf("Ypop\n");
else if(q>r)
printf("lcy\n");
else printf("Ypop\n");
}

else if(q!=0)
printf("lcy\n");
else if(r!=0)
printf("Ypop\n");

else if(judgedianzi(a1,a2,a3)==judgedianzi(a4,a5,a6))
printf("Draw\n");
else if(judgedianzi(a1,a2,a3)>judgedianzi(a4,a5,a6))
printf("lcy\n");
else printf("Ypop\n");
}
return 0;
}
你的程序写得好,逻辑有一点问题!

6. 用C语言编程骰子游戏

#include<stdio.h>
#include<string.h>
int
main()
{
int
a[6]={1,2,3,4,5,6},i,n,p,empty;
char
b[10];
//printf("请输入命令条数:\n");
scanf("%d",&n);
//printf("请输入命令:\n");
for(i=1;i<=n;i++)
{
scanf("%s",b);
p=strcmp(b,"north");
if(p==0)
{
empty=a[0];
a[0]=a[4];
a[4]=a[5];
a[5]=a[1];
a[1]=empty;
continue;
}
p=strcmp(b,"south");
if(p==0)
{
empty=a[0];
a[0]=a[1];
a[1]=a[5];
a[5]=a[4];
a[4]=empty;
continue;
}
p=strcmp(b,"west");
if(p==0)
{
empty=a[0];
a[0]=a[3];
a[3]=a[5];
a[5]=a[2];
a[2]=empty;
continue;
}
p=strcmp(b,"east");
if(p==0)
{
empty=a[0];
a[0]=a[2];
a[2]=a[5];
a[5]=a[3];
a[3]=empty;
}
}
//printf("游戏结束,骰子朝上的字数为:\n");
printf("%d",a[0]);
return
0;
}

7. c语言编程,掷骰子游戏,掷三个骰子,我与电脑轮流坐庄,输了换庄,游戏结束询问是否结束,如果结束

掷骰子比大小,用随机数就可以,但是庄家的规则是咋样的没交代清楚(这里假定庄家的优势在于点数一样大时,庄家赢):

#include "stdafx.h"

#include <iostream>

#include <time.h>

using namespace std;


int main()

{

int Me, Computer,n=1,MC=1;

int meWin = 0, nGames = 0;

srand((unsigned int)time(NULL));

while (n)

{

cout << "开始掷骰子(输入1开始,输入0结束):" << endl;

cin >> n;

Me = rand() % 6 + 1;

Computer= rand() % 6 + 1;

nGames++;

if (MC)

{

cout << "你做庄:" << endl;

cout << "你的点数:" << Me << " 电脑的点数:" << Computer << endl;

if (Me >= Computer)

{

meWin++;

cout << "恭喜你赢了!" << endl;

}

else

{

MC = 0;

cout << "哦,你输了!" << endl;

}

}

else

{

cout << "电脑做庄:" << endl;

cout << "你的点数:" << Me << " 电脑的点数:" << Computer << endl;

if (Computer >= Me)

cout << "哦,你输了!" << endl;

else

{

meWin++;

MC = 1;

cout << "恭喜你赢了!" << endl;

}

}

}


cout << "你赢的次数:" << meWin << " 输的次数:" << nGames - meWin << " 胜率:";

float p = (float)meWin / nGames;

int q = p * 100;

printf("%2d%% ", q);

system("pause");

return 0;

}

8. c语言掷骰子代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
intai[3];//甲的三个骰子的点数
intbi[3];//乙的三个骰子的点数
inti;
srand((unsigned)time(NULL));//播时间种子,产生随机数
for(i=0;i<3;i++)
{
ai[i]=rand()%6+1;//随机产生1-6的点数
bi[i]=rand()%6+1;
}
printf("甲的点数:");
for(i=0;i<3;i++)
{
printf("%d",ai[i]);
}

printf(" 乙的点数:");
for(i=0;i<3;i++)
{
printf("%d",bi[i]);
}

if(ai[0]+ai[1]+ai[2]>bi[0]+bi[1]+bi[2])
{
printf(" 甲获胜. ");
}
else{
printf(" 乙获胜. ");
}
return0;
}

9. 掷骰子的 C语言

#include <time.h>
#include <stdio.h>
#include <string.h>
#define MIDDLE_FLAG 1
#define INITIAL_SCORE 1000
int bet()
{
int rollresult;
rollresult = rand()%6 + 1; //此处rand()为随机数,对6取余结果为0~5,需要+1修正为1~6
//printf("结果:%-4d",rollresult);
if (rollresult > MIDDLE_FLAG)
return 1;
else
return 0;
}
int main()
{
int betscore,myscore = INITIAL_SCORE;
int resultflag, betflag, betresult;
char cinput[2], sresult[3];
printf("您的初始分数为%d\n",myscore);
srand((int)time(0)); //用时间创建随机数种子
while(1)
{
while(1)
{
puts("请压分:");
scanf("%d",&betscore);
if(betscore > myscore)
printf("您的剩余分数不够,为%d", myscore);
else
break;
}
fflush(stdin); //强制刷新缓冲区,防止上次输出影响
puts("请选择大小G为大L为小,X为退出:");
gets(cinput);
cinput[0] = cinput[0]%32+'A' - 1;
if(cinput[0] == 'X')
break;
else
betflag = (cinput[0] == 'G')?1:0;
//三目运算符“?”用法:x=(a>b)?a:b;相当于if(a>b)x=a;else x=b;
betresult = bet();
myscore = (betresult == betflag)?(myscore+2*betscore):(myscore-betscore);
strcpy(sresult, ((betresult!=0)?"大":"小"));
printf("结果为%s,您当前的分数为%d\n",sresult, myscore);
}
return 0;
}