双色球C语言版

一、要求:产生五个红球,范围1-32,不可重复,并且从小到大排序

     产生一个蓝球,范围1-16

     输出格式 如:1 2 3 4 5 + 6

 

二、源码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <stdbool.h>
 4 
 5 int main(int argc, const char * argv[]) {
 6   int redBall[5] = {};
 7  
 8   //产生不重复的五个红球
 9   for (int i = 0; i < 5; i ++) {
10       int temp = arc4random() % 32 + 1;//mac Xcode产生随机数方法
11 
12       if  (i ==0) {
13         //第一个球直接赋值
14         redBall[0] = temp;
15         } else {
16         //判断是否重复
17         bool isExist = false;
18 
19         for (int j = 0; j < i + 1; j ++) {
20             if (temp == redBall[j]) {
21                 isExist = true;
22                 //重新得到浪费的机会
23        
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的双色球模拟系统的C语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define RED_NUM 33 #define BLUE_NUM 16 // 生成随机的双色球号码 void generateLotteryNumbers(int *redNumbers, int *blueNumber) { int i, j; int temp; srand(time(NULL)); // 生成红色球号码 for (i = 0; i < 6; i++) { redNumbers[i] = rand() % RED_NUM + 1; // 确保红色球号码不重复 for (j = 0; j < i; j++) { if (redNumbers[i] == redNumbers[j]) { i--; break; } } } // 生成蓝色球号码 *blueNumber = rand() % BLUE_NUM + 1; } // 检查中奖等级 int checkWinningLevel(int *userRedNumbers, int userBlueNumber, int *lotteryRedNumbers, int lotteryBlueNumber) { int i, j; int redCount = 0; int blueCount = 0; // 检查红色球号码中奖数量 for (i = 0; i < 6; i++) { for (j = 0; j < 6; j++) { if (userRedNumbers[i] == lotteryRedNumbers[j]) { redCount++; break; } } } // 检查蓝色球号码中奖数量 if (userBlueNumber == lotteryBlueNumber) { blueCount = 1; } // 判断中奖等级 if (redCount == 6 && blueCount == 1) { return 1; // 一等奖 } else if (redCount == 6) { return 2; // 二等奖 } else if (redCount == 5 && blueCount == 1) { return 3; // 三等奖 } else if (redCount == 5 || (redCount == 4 && blueCount == 1)) { return 4; // 四等奖 } else if (redCount == 4 || (redCount == 3 && blueCount == 1)) { return 5; // 五等奖 } else if (blueCount == 1) { return 6; // 六等奖 } else { return 0; // 未中奖 } } int main() { int userRedNumbers[6]; int userBlueNumber; int lotteryRedNumbers[6]; int lotteryBlueNumber; int winningLevel; // 用户选择号码 printf("请输入6个红色球号码(1-33之间):\n"); for (int i = 0; i < 6; i++) { scanf("%d", &userRedNumbers[i]); } printf("请输入1个蓝色球号码(1-16之间):\n"); scanf("%d", &userBlueNumber); // 生成开奖号码 generateLotteryNumbers(lotteryRedNumbers, &lotteryBlueNumber); // 检查中奖等级 winningLevel = checkWinningLevel(userRedNumbers, userBlueNumber, lotteryRedNumbers, lotteryBlueNumber); // 输出中奖结果 switch (winningLevel) { case 0: printf("很遗憾,您未中奖!\n"); break; case 1: printf("恭喜您,中了一等奖!\n"); break; case 2: printf("恭喜您,中了二等奖!\n"); break; case 3: printf("恭喜您,中了三等奖!\n"); break; case 4: printf("恭喜您,中了四等奖!\n"); break; case 5: printf("恭喜您,中了五等奖!\n"); break; case 6: printf("恭喜您,中了六等奖!\n"); break; } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值