c语言兑奖程序,体育彩票的模拟生成和兑奖c程序

体育彩票的模拟生成和兑奖c程序

來源:互聯網  2006-01-10 01:19:30  評論

#include

#include

#include

#include

#define MM 7

#define NN 36

typedef int ElemTp;

typedef struct

{

ElemTp elem[MM+1];

int len;

} VoteTp;

typedef struct

{

ElemTp elem[NN+1];

int len;

} SourceTp;

SourceTp source;

InitializeVote(VoteTp *vote);

InitializeSource(SourceTp *source);

void SeqInsertVote(VoteTp *vote,int i,ElemTp x);

int SeqLocate(VoteTp v,ElemTp x);

VoteTp CreateAVote();

int RightNum(VoteTp vote,VoteTp answervote);

main()

{

VoteTp vote;

VoteTp answervote;

int k,i;

randomize();

InitializeSource(&source);

answervote=CreateAVote();

printf("\nPress Any Key to Continue ,0 to exit !");

printf("\n Answer Numbers: ");

for (i=1;i<=MM;i++)

printf("%3d ",answervote.elem[i]);

printf("\n Your Vote Numbers ---->>Right Numbers \n");

while (getchar()!='0')

{

vote=CreateAVote();

for (i=1;i<=MM;i++)

printf(" %-2d ",vote.elem[i]);

k=RightNum(vote,answervote);

printf(" ---->> %d \n",k);

}

}

InitializeVote(VoteTp *vote)

{

vote->len=0;

}

InitializeSource(SourceTp *Source)

{

int i;

for(i=1;i<=NN;i++)

Source->elem[i]=i;

Source->len=NN;

}

int SeqLocate(VoteTp v,ElemTp x)

{

int j=1;

while(j<=v.len&&v.elem[j]!=x)

j++;

if(j<=v.len)

return j;

else

return 0;

}

void SeqInsertVote(VoteTp *vote,int i,ElemTp x)

{

VoteTp v;

int j;

v=*vote;

if((i<1)||(i>v.len+1))

printf(" error number!");

else

{

for(j=v.len;j>=i;j--)

v.elem[j+1]=v.elem[j];

v.elem[i]=x;

v.len=v.len+1;

}

*vote=v;

}

int RightNum(VoteTp vote,VoteTp answervote)

{

int i,k;

k=0;

for (i=1;i<=MM;i++)

if(SeqLocate(vote,answervote.elem[i])>0)

k++;

return(k);

}

VoteTp CreateAVote()

{

VoteTp vote;

ElemTp k,temp;

int i;

InitializeVote(&vote);

source.len=NN;

for(i=1;i<=MM;i++)

{

k=random(source.len)+1;

SeqInsertVote(&vote,vote.len+1,source.elem[k]);

temp=source.elem[k];

source.elem[k]=source.elem[source.len];

source.elem[source.len]=temp;

source.len=source.len-1;

}

return vote;

}

#include

#include

#include

#include

#define MM 7

#define NN 36

typedef int ElemTp;

typedef struct

{

ElemTp elem[MM+1];

int len;

} VoteTp;

typedef struct

{

ElemTp elem[NN+1];

int len;

} SourceTp;

SourceTp source;

InitializeVote(VoteTp *vote);

InitializeSource(SourceTp *source);

void SeqInsertVote(VoteTp *vote,int i,ElemTp x);

int SeqLocate(VoteTp v,ElemTp x);

VoteTp CreateAVote();

int RightNum(VoteTp vote,VoteTp answervote);

main()

{

VoteTp vote;

VoteTp answervote;

int k,i;

randomize();

InitializeSource(&source);

answervote=CreateAVote();

printf("\nPress Any Key to Continue ,0 to exit !");

printf("\n Answer Numbers: ");

for (i=1;i<=MM;i++)

printf("%3d ",answervote.elem[i]);

printf("\n Your Vote Numbers ---->>Right Numbers \n");

while (getchar()!='0')

{

vote=CreateAVote();

for (i=1;i<=MM;i++)

printf(" %-2d ",vote.elem[i]);

k=RightNum(vote,answervote);

printf(" ---->> %d \n",k);

}

}

InitializeVote(VoteTp *vote)

{

vote->len=0;

}

InitializeSource(SourceTp *Source)

{

int i;

for(i=1;i<=NN;i++)

Source->elem[i]=i;

Source->len=NN;

}

int SeqLocate(VoteTp v,ElemTp x)

{

int j=1;

while(j<=v.len&&v.elem[j]!=x)

j++;

if(j<=v.len)

return j;

else

return 0;

}

void SeqInsertVote(VoteTp *vote,int i,ElemTp x)

{

VoteTp v;

int j;

v=*vote;

if((i<1)||(i>v.len+1))

printf(" error number!");

else

{

for(j=v.len;j>=i;j--)

v.elem[j+1]=v.elem[j];

v.elem[i]=x;

v.len=v.len+1;

}

*vote=v;

}

int RightNum(VoteTp vote,VoteTp answervote)

{

int i,k;

k=0;

for (i=1;i<=MM;i++)

if(SeqLocate(vote,answervote.elem[i])>0)

k++;

return(k);

}

VoteTp CreateAVote()

{

VoteTp vote;

ElemTp k,temp;

int i;

InitializeVote(&vote);

source.len=NN;

for(i=1;i<=MM;i++)

{

k=random(source.len)+1;

SeqInsertVote(&vote,vote.len+1,source.elem[k]);

temp=source.elem[k];

source.elem[k]=source.elem[source.len];

source.elem[source.len]=temp;

source.len=source.len-1;

}

return vote;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值