|
![]() | 作者: sue [suweiqin]
![]() |
登录 |
我在用C语言编写一六合彩程序时,使了多个随机函数,运行后把它关闭,然后再打开,发现里面选出来的号码和第一次运行时选出来的密码一模一样,关机后再运行,问题依旧,请问应如何修改?源程序如下: #include <stdio.h> #include <stdlib.h> int x,y,z; int a,b,c,d,e,f,g; int k=925; void run1(void); void run367(void); int run256(void); void run2(void); void run4(void); void run5(void); void run6(void); void run7(void); void run8(void); void run9(void); int main() { run7(); return 0; } void run367(void) { a=rand(); b=rand(); c=rand(); d=rand(); e=rand(); f=rand(); g=rand(); if((a/k+1)!=(b/k+1)&&(a/k+1)!=(c/k+1)&&(a/k+1)!=(d/k+1)&&(a/k+1)!=(e/k+1)&&(a/k+1)!=(f/k+1)&&(a/k+1)!=(g/k+1)&&(b/k+1)!=(c/k+1)&&(b/k+1)!=(d/k+1)&& (b/k+1)!=(e/k+1)&&(b/k+1)!=(f/k+1)&&(b/k+1)!=(g/k+1)&&(c/k+1)!=(d/k+1)&&(c/k+1)!=(e/k+1)&&(c/k+1)!=(f/k+1)&&(c/k+1)!=(g/k+1)&&(d/k+1)!=(e/k+1)&&(d/k+1)!=(f/k+1)&&(d/k+1)!=(g/k+1)&&(e/k+1)!=(f/k+1)&&(e/k+1)!=(g/k+1)&&(f/k+1)!=(g/k+1)) printf("\n\n第%d注:[%d]\t[%d]\t[%d]\t[%d]\t[%d]\t[%d]\t[%d] ",x+1,a/k+1,b/k+1,c/k+1,d/k+1,e/k+1,f/k+1,g/k+1); else run367(); } void run1(void) { printf("\n\n\n预测今期南粤风采36选7的中奖号码是:"); for(x=0;x<5;x++) run367(); printf("\n按1键继续,按0键返回主菜单..."); scanf("%d",&z); if(z==1) run1(); if(z==0) run8(); else { printf("\n你只能输入1或0:"); scanf("%d",&z); run6(); } } void run2(void) { printf("\n\n\n预测今期南粤风采26选5的中奖号码是:"); for(x=0;x<5;x++) run265(); printf("\n按回1键继续,按0键返回主菜单..."); scanf("%d",&z); if(z==1) run2(); if(z==0) run8(); else { printf("\n你只能输入1或0:"); scanf("%d",&z); run5(); } } int run265(void) { a=rand(); b=rand(); c=rand(); d=rand(); e=rand(); if((a/k+1)!=(b/k+1)&&(a/k+1)!=(c/k+1)&&(a/k+1)!=(d/k+1)&&(a/k+1)!=(e/k+1)&&(b/k+1)!=(c/k+1)&&(b/k+1)!=(d/k+1)&& (b/k+1)!=(e/k+1)&&(c/k+1)!=(d/k+1)&&(c/k+1)!=(e/k+1)&&(d/k+1)!=(e/k+1)) printf("\n\n第%d注:[%d]\t[%d]\t[%d]\t[%d]\t[%d] ",x+1,a/k+1,b/k+2,c/k+2,d/k+3,e/k+2); else run265(); return 0; } void run4(void) { if(z==1) run1(); if(z==2) run2(); else { printf("\n错误!你只能选择1或者2"); printf("\n请从新输入:"); scanf("%d",&z); run4(); } } void run5(void) { if(z==1) run2(); if(z==0) run8(); else { printf("\n你只能输入1或0:"); scanf("%d",&z); run5(); } } void run6(void) { if(z==1) run1(); if(z==0) run8(); else { printf("\n你只能输入1或0:"); scanf("%d",&z); run6(); } } void run7(void) { printf("Microsoft 六合采预测系统 [Version 1.00.2003]\n"); printf("(C)版权所有 1986-2003 Microsoft Crop.\n"); printf("作者:*** Email: suweiqin2003@yahoo.com.cn\n"); printf("\n\n\n请输入你的注册码:"); scanf("%ld",&z); if(z==*********) run8(); else run9(); } void run8(void) { printf("\n\n\n南粤风采中奖号码预测系统\n"); printf("\n1.南粤风采36选7\n"); printf("\n2.南粤风采26选5\n"); printf("\n\n请选择其中一项:"); scanf("%d",&z); if(z==1) run1(); if(z==2) run2(); else { printf("\n错误!你只能选择1或者2\n"); printf("\n请从新输入:"); scanf("%d",&z); run4(); } } void run9(void) { printf("\n\n\n请输入你的注册码:"); scanf("%ld",&z); if(z==19860909) run8(); else run9(); } [此贴被 sue(suweiqin) 在 08月14日10时25分 编辑过] |
地主 发表时间: 08/12 08:27 |
![]() | 回复: shesh [shesh] ![]() |
登录 |
srand( (unsigned)time( NULL ) ); printf( " %6d\n", rand() ); 得先用时间发散一下 |
B1层 发表时间: 08/12 09:08 |
![]() | 回复: 286 [unique] ![]() |
登录 |
因为系统每次采用的种子(seed)都相同,换个种子就行了。 方法见无班主的。 |
B2层 发表时间: 08/12 09:11 |
![]() | 回复: tommy_he [tommy_he] ![]() |
登录 |
随机的采数不正确! |
B3层 发表时间: 08/13 05:00 |
![]() | 回复: mingming8 [mingming8] ![]() |
登录 |
这么长,我能学会么? |
B4层 发表时间: 08/14 22:14 |
![]() | 回复: 286 [unique] ![]() |
登录 |
#include <stdio.h> #include <stdlib.h> int z; int a[7],m; int i,j,k; void run(int n); int main() { printf("Microsoft 六合采预测系统 [Version 1.00.2003]\n"); printf("(C)版权所有 1986-2003 20cn Co.,Ltd.\n"); printf("作者:*** Email: suweiqin2003@yahoo.com.cn\n"); z=0; while(z!=1) { printf("\n\n\n请输入你的注册码:"); scanf("%ld",&z); } srand((unsigned)time(NULL)); printf("\n\n\n南粤风采中奖号码预测系统\n"); while (1) { printf("\n0.退出系统\n"); printf("\n1.南粤风采36选7\n"); printf("\n2.南粤风采26选5\n"); printf("\n\n请选择其中一项:"); scanf("%d",&z); if (z==0) { printf("谢谢使用.\n\n"); break; } if (z==1) run(7); else if (z==2) run(5); else { printf("\n错误!你只能选择0,1或者2\n"); printf("\n请重新输入:"); } } return 0; } void run(int n) { int mod=36; if (n==5) mod=26; for (k=0;k<5;k++) { for (i=0;i<n;i++) { m=0; while (m==0) { m=1; a[i]=rand()%mod; for (j=0;j<i;j++) if (a[i]==a[j]) m=0; } } printf("\n\n第%d注:",k+1); for (i=0;i<n;i++) printf("[%d]\t",a[i]); } if (n==7) printf("\n\n\n预测今期南粤风采36选7的中奖号码是:"); else printf("\n\n\n预测今期南粤风采26选5的中奖号码是:"); scanf("%d",&z); if (z==286) { printf("乖乖,你重头奖了,快去领奖吧。\n\n\n\n"); exit(0); } else printf("继续努力。\n\n\n\n"); } |
B5层 发表时间: 08/15 11:21 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号