| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> 开发语言 >> C语言 >> C技术资料 >> 正文
  ►  C语言优化双色球自选程序的小技巧
C语言优化双色球自选程序的小技巧
作者:cdmalcl    阅读人次:……    文章来源:本站原创    发布时间:2007-3-18    网友评论()条
 

原帖及讨论:http://bbs.bccn.net/thread-120387-1-1.html

我刚开始写双色球机选程序都是像下面这样写

#include<math.h>
#include<stdlib.h>
#include<time.h>

main()
{
    int i ,j ,k;
    int num[6];

    srand((unsigned)time(NULL));

    for(i = 0;i < 6;i++)
    {
        num[i] = random(33)+1;

        for(j = 0;j < i;j++)
        {
            if(num[i] == num[j])
            {
                i--;
                j = 7;
            }
        }
    }
    num[5] = random(16)+1;
    for(i = 0;i < 6;i++)
     printf("%2d ",num[i]);

    printf("+%2d ",num[5]);
    getch();
}

这种写法的好处是好想

但是要承认的是这种写法效率很低(而且这个程序还是没有加号码大小的排序)

要只输出少量号码组的时候可能并没有表现出它的低效问题

但是在产生并输出大量这些号码的时候就会表现出其低效性
为此我想到了一个更好的方法:

#include<math.h>
#include<stdlib.h>
#include<time.h>

main()
{
    int i ,j ,k;
    int num[6];

    srand((unsigned)time(NULL));

    num[0] = random(28)+1;
    for(i = 1;i < 6;i++)
    {
        num[i] = num[i-1]+random(28-num[i-1]+i)+1;
    }

    num[5] = random(16)+1;
    for(i = 0;i < 6;i++)
     printf("%2d ",num[i]);

    printf("%2d ",num[i]);
    getch();
}

大家可以很快的看出这个程序要优于上一个程序

[1] [2] 下一页

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子