如何用C随机生成一组数据
怎么用C随机生成一组数据
我想用C语言随机获得10组数据,这数据里面包括姓名(英文的字符串形式),年龄(数字),出生日期(date),电话号码(11位数字),状态(分为dead和alive),怎么用随机函数写出来啊。
------解决方案--------------------
我想用C语言随机获得10组数据,这数据里面包括姓名(英文的字符串形式),年龄(数字),出生日期(date),电话号码(11位数字),状态(分为dead和alive),怎么用随机函数写出来啊。
------解决方案--------------------
- C/C++ code
//随机获得10组数据,这数据里面包括姓名(英文的字符串形式),年龄(数字),出生日期(date),电话号码(11位数字),状态(分为dead和alive), #include <stdio.h> #include <stdlib.h> #include <time.h> struct D { char xm[20]; int nl;//1..100 char csrq[11];//YYYY-MM-DD 1910-01-01..2012-12-31 char dhhm[12]; int zt;//0-dead,1-alive } d[10]; int i,j; void main() { srand(time(NULL)); for (i=0;i<10;i++) { for (j=0;j<20;j++) { if (0==j) d[i].xm[j]='A'+rand()%26; else { d[i].xm[j]='@'+rand()%26; if ('@'==d[i].xm[j]) { d[i].xm[j]=0; break; } } } d[i].xm[19]=0; d[i].nl=1+rand()%100; sprintf(d[i].csrq,"%d-%02d-%02d",1910+rand()%103,1+rand()%12,1+rand()%28); d[i].dhhm[0]='1'; sprintf(d[i].dhhm+1,"%d",rand()%10); sprintf(d[i].dhhm+2,"%d",rand()%10); sprintf(d[i].dhhm+3,"%d",rand()%10); sprintf(d[i].dhhm+4,"%d",rand()%10); sprintf(d[i].dhhm+5,"%d",rand()%10); sprintf(d[i].dhhm+6,"%d",rand()%10); sprintf(d[i].dhhm+7,"%d",rand()%10); sprintf(d[i].dhhm+8,"%d",rand()%10); sprintf(d[i].dhhm+9,"%d",rand()%10); sprintf(d[i].dhhm+10,"%d",rand()%10); d[i].zt=rand()%2; printf("%d xm=%-20s,nl=%-3d,csrq=%s,dhhm=%s,zt=%s\n",i,d[i].xm,d[i].nl,d[i].csrq,d[i].dhhm,(d[i].zt)?"alive":"dead"); } } //0 xm=SSMGRTNBOOXEFRYDGTA ,nl=32 ,csrq=1924-06-24,dhhm=11524590739,zt=alive //1 xm=QP ,nl=95 ,csrq=1929-10-16,dhhm=13615969757,zt=dead //2 xm=ZRRNFRUS ,nl=43 ,csrq=1995-07-11,dhhm=15008568107,zt=dead //3 xm=LGPXQ ,nl=70 ,csrq=1935-03-04,dhhm=18095046696,zt=alive //4 xm=GLNSHODWVTXEHWABIAP ,nl=57 ,csrq=1952-12-22,dhhm=12348839198,zt=dead //5 xm=FNLHRPTJITLHLNBVLQH ,nl=73 ,csrq=1977-10-28,dhhm=10526975481,zt=dead //6 xm=CKSHOCKJSMIXFQLLDVK ,nl=22 ,csrq=1914-06-15,dhhm=13288624816,zt=dead //7 xm=IDYNEJAUHLODUETJFDK ,nl=99 ,csrq=1964-10-21,dhhm=11641755619,zt=alive //8 xm=SGWHEBWXFMXVIPFI ,nl=20 ,csrq=2006-09-19,dhhm=15412572325,zt=dead //9 xm=ZWQYAAEADOESIMMMN ,nl=66 ,csrq=1984-08-18,dhhm=13943366376,zt=alive