这是我的任务。
这是我想出的:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int r,i,num[0];
srand(time(NULL));
r = rand()%(999-100+1)+100;
printf("Here is the wininng number%d\n",r);
printf("Enter three digit number to win lottery:\n");
scanf("%d",num);
for(i=0;i<3;i++){
if(r==num[0]){
printf("For three exact match you get $100,000\n");
}else if((r/10)==(num[1]/10)){
printf("For two number match you get $50,000\n");
}else if((r%10)==(num[]%10)){
printf("For one number match you get $10,000\n");
}else{
printf("You get nothing!\n");
}}
}
我得到了三位数的匹配,有时编译后会得到三位数和两位数的匹配。告诉我怎么了。提前谢谢你们。
出于某种原因,您已经声明了num[0]
,这使得num
成为一个长度为零的数组。
请注意,“中奖号码”实际上不是一个数字,而是一个数字字符串。
您应该将num
声明为字符数组:
char num[4];
你可以阅读以下内容:
scanf("%3s", num)
然后需要将ASCII字符转换为num[0]
,num[1]
,num[2]
,以便与随机数的数字进行比较。
你的逻辑是错误的。
通过将他们输入的内容与您生成的内容(中奖号码)进行比较,可以找到3位数的精确匹配。
3位排列更棘手,但您还需要考虑2位和1位排列。我可能会将生成的(获胜)数字转换为字符串,以及用户的数字。然后,您可以逐步完成获胜号码,计算获胜号码中与用户号码中未使用的数字匹配的位数。通过计数,您知道用户赢了什么。请注意,当一个数字匹配时,您需要将其删除,这样当获胜号码为666并且用户输入456时,您就不会计算与6匹配的三个数字。
这样地:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int win;
int num;
srand(time(NULL));
win = rand() % (999 - 100 + 1) + 100;
printf("Here is the winning number: %d\n", win);
printf("Enter three digit number to win lottery:\n");
if (scanf("%d", &num) != 1)
return 1;
if (num == win)
printf("For exact match you get $100,000\n");
else if (num < 0 || num > 999)
printf("Your number is out of range - you win nothing\n");
else
{
char win_str[4];
char try_str[4];
sprintf(win_str, "%d", win);
sprintf(try_str, "%d", num);
int match = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (win_str[i] == try_str[j])
{
try_str[j] = 'x';
match++;
break;
}
}
}
switch (match)
{
case 0:
printf("No digits in %.3d match %3d - you win nothing\n", num, win);
break;
case 1:
printf("One digit of %.3d matches %3d - you win $10,000\n", num, win);
break;
case 2:
printf("Two digits of %.3d match %3d - you win $20,000\n", num, win);
break;
case 3:
printf("Three digits of %.3d match %3d - you win $50,000\n", num, win);
break;
default:
printf("The impossible happened (%.3d vs %3d gives %d matches)\n", num, win, match);
break;
}
}
return 0;
}
本文向大家介绍使用Python计算玩彩票赢钱概率,包括了使用Python计算玩彩票赢钱概率的使用技巧和注意事项,需要的朋友参考一下 工具:Jupyter notebook + Anaconda 游戏规则:时时彩一种玩法是买尾号。2元一个数字,中奖是20元。每个数字出现的概率相等。 目前想到两种买法: 随机购买,人是感性动物,很容易受周围环境干扰。完全随机购买在生活中是不存在的。 分析数字在前面N期
我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票! 我已经做了很多,但现在我卡住了。我对java真的很陌生,所以请原谅我。当它提示要求另一个数字时,它会这样做,但它仍然显示它以显示自制的彩票选秀权。此外,当显示计算机制作的彩票选秀权的数字时,它们是重复的相同数字,而不是6个数字。计数器不太好用,可能有点小问题,但我无法弄清楚。谢谢你
我正在为课堂编写一个程序。这是一个彩票游戏。这是给出的问题: 编写一个java程序。该程序应该有一个名为lotteryNumber()的方法,该方法应该接受两个整数,最大和最小数字,并应该随机生成并返回这两个数字之间的一个数字(均包含在内)。 另外,提供一个名为checkWinner()的方法,该方法应该接受两个数组(一个用于彩票号码,一个用于用户号码),并检查它们是否相同(相同的号码和序列)。如
我创建了一个彩票程序,在0-9之间随机生成3个号码,然后随机生成3个中奖号码。我需要关于如何让程序显示中奖者(如果有的话)和中奖人数的帮助。 所以类似:赢家: 人1 人员5 获奖人数:2人 这是我的程序
仿网易彩票界面及所有功能。具体功能如下: 1、点击小球,并且手指在多个小球上滑动,可以连续弹出大球视图。解决网易点击小球松手瞬间滑动tableview无法移除释放大球动画效果。 2、解决淘宝彩票点击小球后弹出大图背景被顶部视图遮挡的Bug。 3、适配iPhone4和iPhone5。 [Code4App.com]
我的代码看起来很业余,因为我是一名软件工程专业的二年级学生。 我创建了一个彩票号码生成器,并注意到了奇怪但一致的结果。我的程序试图匹配之前的百万欧元抽奖彩票号码。我追踪尝试次数,也追踪匹配3、4、5和6个数字的次数。 尝试次数在100万到4.22亿之间。i、 e.我会运行程序10次,我会实现一个范围,我还会跟踪每次运行所需的时间长度。 我解释了一些事情,比如防止一个随机数被多次使用,这个检查是针对