zoukankan      html  css  js  c++  java
  • c语言实现双色球和大乐透

    头文件:

    #include<stdio.h>
    #include <stdlib.h> 
    #include<string.h>
    #include <time.h>

    函数原型:

    void sortArray(int *a, int length); // 数组的排序
    
    int randInMinAndMax( int range_min, int range_max );//产生一个0~max之间的某个数
    
    void getRandArray(int *a, int length, int max); //产生某一长度的数组,它的每个元素都是随机生成的,且都在1~max之间、各不相同
    
    void printResult(int *a, int length); //遍历数组
    
    void getReult(char *arg, int *a1, int len1,int max1, int *a2, int len2, int max2);//产生双色球或者大乐透的结果
    
    void hanldeArg(int argl, char *arg); //根据传入的参数判断是需要双色球还是大乐透,并跳转到相应的方法

    实现方法:

     1 void hanldeArg(int argl, char *arg){
     2 
     3     int *a1 = NULL, *a2 = NULL;
     4 
     5     if(strcmp(arg, "双色球") == 0){
     6         
     7         a1 = (int *)malloc(sizeof(int) * 6);
     8 
     9         a2 = (int *)malloc(sizeof(int) * 1);
    10 
    11         getReult(arg, a1, 6, 33, a2, 1, 16);
    12 
    13     }else if(strcmp(arg, "大乐透") == 0){
    14 
    15         a1 = (int *)malloc(sizeof(int) * 5);
    16 
    17         a2 = (int *)malloc(sizeof(int) * 2);
    18 
    19         getReult(arg, a1, 5, 35, a2, 2, 12);
    20 
    21     }else
    22         printf("参数是 双色球 或者是 大乐透 
    ");
    23 
    24     if(a1 == NULL){
    25 
    26         free(a1);
    27 
    28         a1 = NULL;
    29 
    30     }
    31 
    32     if(a2 == NULL){
    33 
    34         free(a2);
    35 
    36         a2 = NULL;
    37 
    38     }
    39 }
    View Code
     1 void getReult(char *arg, int *a1, int len1,int max1, int *a2, int len2, int max2){
     2 
     3     int i ;
     4 
     5     srand((unsigned)time(NULL));
     6 
     7     for(i = 0; i < 10000; ++i){
     8         getRandArray(a1, len1, max1);
     9 
    10         getRandArray(a2, len2, max2);
    11     }
    12 
    13     printf("
    ");
    14 
    15     printf("%s 红球:", arg);
    16 
    17     printResult(a1, len1);
    18 
    19     printf("蓝球:");
    20 
    21     printResult(a2, len2);
    22 
    23     printf("
    ");
    24 }
    View Code
    int randInMinAndMax( int range_min, int range_max )
    {
        int i, u;
    
        for(i = 0; i < 10; ++i)
            u = (double)rand() / RAND_MAX * (range_max - range_min) + range_min;
    
        return u;
    }
    View Code
     1 void printResult(int *a, int length){
     2 
     3     int i;
     4 
     5     for(i = 0; i < length; ++i){
     6 
     7         printf(" %d ", a[i]);
     8     }
     9 
    10 }
    View Code
     1 void getRandArray(int *a, int length, int max){
     2     
     3     int i, j, flag ;
     4 
     5     int temp;
     6 
     7     for(i =0; i < length; ++i){
     8 
     9         exist : {
    10             
    11             //得到一个随机数
    12             temp = randInMinAndMax(1, max);
    13 
    14             flag =0; //设置数组中不存在这个数
    15 
    16             //判段数组中是否存在
    17             for(j = i; j >= 0; --j){
    18 
    19                 if(temp == a[j]){
    20 
    21                     flag = 1;
    22 
    23                     break;
    24                 }
    25 
    26             }
    27         };
    28 
    29         if(flag){
    30 
    31             goto exist;
    32 
    33         }
    34             
    35         a[i] = temp;
    36 
    37     }
    38 
    39     sortArray(a, length);
    40 }
    View Code
    void sortArray(int *a, int length){
    
        int i, j, temp;
    
        for(i = 0; i < length; ++i){
    
            for(j = i + 1; j < length; ++j){
    
                if(a[j] < a[i]){
    
                    temp = a[i];
    
                    a[i] = a[j];
    
                    a[j] = temp;
    
                }
    
            }
    
        }
    }
    View Code

    测试:

    int main(int arcl, char *args[], char **env){
    
        if(arcl < 2){
    
            printf("请输入参数 双色球 或者是 大乐透 
    ");
    
            return -1;
    
        }
    
        hanldeArg(arcl, args[1]);
    
        system("pause");
    
        return 0;
    
    }

    运行及结果:

  • 相关阅读:
    01-Django 简介
    函数及函数的嵌套等
    循环及循环嵌套
    运算符
    if, elif, else及if嵌套
    变量及变量计算和引用
    Python的3种执行方式
    Jmeter设置默认中文启动
    Vysor
    python基础学习(二)
  • 原文地址:https://www.cnblogs.com/zhouquan-1992-04-06/p/6234612.html
Copyright © 2011-2022 走看看