搜索
查看: 1046|回复: 2
打印 上一主题 下一主题

一个模拟生成注册码的程序,谁有更好的方法请赐教

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-18 19:28:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
这就是源代码。#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
        int i,j,lep,leg;
        int count=0;
        int nut=0;
        char ch;
        char str[7][10]={"abcdefghi","jklmnopqr","stuvwxyz","ABCDEFGHI","JKLMNOPQR","STUVWXYZ0","123456789"};

        srand((unsigned)time(NULL));

        for(i=0;i<7;i++)
        {
                for(j=0;j<10;j++)
                {
                        lep=rand()%10;
                        leg=rand()%7;
                        ch=str[i][lep];
                        str[i][lep]=str[leg][j];
                        str[leg][j]=ch;
                }
        }

        while(1)
        {
                nut=0;
                while(1)
                {
                        lep=rand()%10;
                    leg=rand()%7;
                        if(str[leg][lep]!=' ' && str[leg][lep]!='\0')  /*系统会在每个字符串后自动添加 \0 */
                        {
                                printf("%c",str[leg][lep]);                /*因为前面的字符串数组在交换时 \0 也会参与交换 */
                                nut++;                                     /*在输出时不会显示,因此输出时加以限制输出,以满足条件 */
                        }
                        if(nut==4)break;
                }
                ++count;

                if(count!=4)
                {
                        printf("-");
                }

                if(count==4)
                {
                        break;       
                }
        }
        printf("\n");
  
}

沙发
发表于 2013-8-18 20:30:03 | 只看该作者
这是要生成什么样的随机字串写得这么费劲?
板凳
发表于 2013-8-25 20:30:14 | 只看该作者
char str[7][10]={"abcdefghi","jklmnopqr","stuvwxyz","ABCDEFGHI","JKLMNOPQR","STUVWXYZ0","123456789"};
真的有必要吗?
用ASCII码啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表