zoukankan      html  css  js  c++  java
  • 帮同学做的一个取随机数的程序,望各位高手指点

    在1~36之间取随机6个数(不重复),并按从小到大的顺序输出


     

    /*
    主要思想是用系统时间生成随机数的种子,然后取随机数,冒泡排序并输出
    11/24/2011 by zhuyu
    */
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    using namespace std;
    int num[6];
    void paixu();
    double random(double,double);
    int main()
    {
    int limit=36;//限制上限为36
    int *temp=new int[limit];
    int number=0,j=0;



    for(int i=0;i<limit;i++)
    {
    temp[i]=i;
    }

    srand(unsigned(time(0)));//用time()函数获取系统时间作为种子并强制转化为unsigned型变量,作为函数srand的参数。
    for( i= 0; i<6; i++)
    {
    number=int(random(1,limit));//取1~36内的随机数;

    while(temp[number]==-1)//如果生成重复的数,则重新生成;
    {
    number=int(random(1,limit));
    }
    num[j]=number;
    j++;
    temp[number]=-1;
    }
    delete []temp;
    temp=NULL;

    paixu();//调用排序与输出函数

    return 0;
    }
    double random(double start, double end)
    {
    return start+(end-start)*rand()/(RAND_MAX+ 1.0);
    }
    void paixu()//冒泡排序
    {
    int flag=0,temp=0;
    for(int i=0;i<5;i++)
    {
    flag=0;
    for(int j=0;j<6-i-1;j++)
    if(num[j]>num[j+1])
    {
    temp=num[j];
    num[j]=num[j+1];
    num[j+1]=temp;
    flag=1;
    }
    if(flag=0)
    break;

    }
    cout<<"排序后的6个数为:\n";
    for(i=0;i<6;i++)
    cout<<""<<num[i]<<"\t";
    }



  • 相关阅读:
    菜鸟涂鸦作品展_No.29
    菜鸟涂鸦作品展_No.27
    菜鸟涂鸦作品展_No.26
    关注的前沿动态
    货币转换
    第二周总结
    老鼠
    71 打印沙漏
    学习总结0.0
    第五周作业
  • 原文地址:https://www.cnblogs.com/zhuy/p/2261587.html
Copyright © 2011-2022 走看看