注册 登录
编程论坛 C++教室

如何输出随机字符?

大家一起玩 发布于 2011-07-27 17:02, 1193 次点击
C++如何输出随机字符?(数字或大小写)
6 回复
#2
lzt99292011-07-27 17:03
#include<stdio.h>
#include<string.h>
int main()
{
 char p[26+26+10];
 int i, j, k, n;
 for (i=0; i<26; p[i]='A'+i, i++);
 for (j=0; j<26; p[i]='a'+j, i++, j++);
 for (k=0; k<10; p[i]='0'+k, i++, k++);
 srand((unsigned)time(0));
 while (1) {
  n = rand()%62;
  putchar(p[n]);
 }
 return 0;
}


输出随机字符

QAWdQompvGVvPftfbdFKDIqed8rZQ5Lf4h8KLix4nJp0mYTE0YO1e2W71DUF6fkyCh7LFuFq1sgeH0g5MswrkGmZH7fEcF2dmzoqisWZa11frXa3DLioRLDXGibimR9MFm2nUNAsC0OtNmkPxH3DQ4aWbz2DE2NHcGuwRteTjqAuTi9Gn0H3tfNKUGLX6WeYcNIr6k8dR6NidLmGBu8sPL0iP95JWXhwknegOa7dXLByUn4TV0CjC2HP2AZOX4A6icau3YNOhMA1z2KJtMstDx85xVHIQFEwifeZ1rlY1lPodZxKkf3nQ2gDLlKZqMLMpplgUK4LvHyNhlXFFRqVHMXQxfqdr1oXfP3xYw7H3vUYUqdZ5JtATEQGj6iQyMnRZfExRB5KuNhF3AcwILwbPDiy9EFvOqAnLFZaEUjzfG4XGWJOg4qv7Mi4OlocRoFbre1wwajSgbnlvwxRqbBlnhg1IITXwXwe1oOmCv4hMfI7R3N6VMh8rByzJFK4c7WSjk4lVwGfRMaiGlcbx8Zc9LRHRaBtVXB453dOpkt6wHd2t5Te3r712M8Hm717U0zNuTbZ1IUnNxe6qvbkcWbTiXaJUPEmE4zyLOLCUfnhQHc731hTN6mtTB2lQ5NUxAG8MS8evlBCtb9kSe3daeNrfDSv8dEvbKtnarHMRGO8gLiypZSD3duWgAGfbKO2S6dtli52mH0ISW55uN8loq8KoEnFM25eyYLZ4EQgJEpbbiUJtSuX8shkuLp4DkZz6iM0ncXufAK4geDPxxmteJUOS7JVigIcCVTnvoYOmiIICLXx77fbGxnZuusQOztRIA43mQIOyOUzapkXmFws2ZFlKw1YlintigkKwqWj5qWVV6q7Aco01rb9dTYE19xYfWiQC3z7jJS3F8yDYa4QIVPloloelZ2GvYWyRJvzSCsW8eZX5TlBn0kRaOtBmlFXAaJRh3Ey3wI1PhMIzxJamrpC4ZBgAE18cBOA4SwxD4mQZzYOkfoMMSMGrLkpQcosd0qVGcGJWqXwdv8EOlOb3ZfikENygzh7pLQwmU36ARscApePOsoFFHnqL0erq9mTL2DvK7rJMalMDFZPvDU1L5fUv9AZ7mrIdu3npkw18VC9abOMdgBmbg6Ld6iajPiA8Znn8Yd4td2I4ESVlT7Az4LQyurV7NV5l7jjVAbCdRKVWcr5vo5igHzVzgqwrAsS7PzQPRSqgdB25sxpVrLzwAIlexVMxBeuOSAbhQHDtJ6nzrSIWd6IcEr4zDGmCjUR1SsYjyZQ5T3uBL1VnveFxL9nMEPPligayMwXALo5ffoepdzSOTVBdSopW245YYVMjHijTKfypHQUkFkwZ5x2OafiQYemuzyT5U3OeWAIbQa9TBvs4giG6CpKaHwK4
#3
lz10919149992011-07-28 12:46
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void) {
    int i;
    srand((unsigned)time(NULL));
    for(i = 0; i < 100; i++)
        switch(rand() % 3) {
        case 0:
            printf("%c", rand() % 10 + '0');
            break;
        case 1:
            printf("%c", rand() % 26 + 'a');
            break;
        case 2:
            printf("%c", rand() % 26 + 'A');
            break;
        }
    printf("\n");
    return 0;
}


[ 本帖最后由 lz1091914999 于 2011-7-28 12:51 编辑 ]
#4
langhuan2011-07-30 10:29
回复 2楼 lzt9929
这个程序不对啊。
编译是通不过的啊,并且是死循环。
#5
xlp_0072011-08-03 14:38
把大小写字母放进数组,i,j当下标读取。
2L只是写了个意思,注意领会精神啊~~~
#6
噼里啪啦2011-08-03 16:08
三楼能行
#7
succubus2011-08-04 12:20
三楼的严格来说是不行的
单个数字出现的概率要比单个字母出现的概率大。。。
1