typedef int datatype; #include "seqlist.h"
rand(seqlist *l,int n); write(seqlist *l,int n); void take_out(); int a[7];
int main() { seqlist *l; int i,j,n,k=0; srand((int)time(0));
printf("您要买多少注?"); scanf("%d",&n); printf("一共%d元\n",n*2);
l=(seqlist *)malloc(n*sizeof(seqlist)); if(l==null) { puts("overflow!"); exit(1); }
for(i=0;i<n;i++) setlist(&l,7);
printf("1.机选 2.自选"); while(k!=1&&k!=2) scanf("%d",&k);
if(k==1) rand(l,n); /* 机选 */
else write(l,n); /* 自选 */
printf("抽奖开始\n"); take_out();
printf("本期开奖号码为:"); for(i=0;i<7;i++) printf("%d ",a); printf("\n");
for(i=0;i<n;i++) { k=0; for(j=0;j<7;j++) { if(a[j]==getdata(&l,j)) /* 当对应都一样时 */ k++; } printf("您第%d注号码为: ",i+1); for(j=0;j<7;j++) printf("%d ",getdata(&l,j));
printf(" 一共中了%d个号\n",k);
}
for(i=0;i<n;i++) { freelist(&l); clearlist(&l); }
free(l); return 0; }
rand(seqlist *l,int n) /* 机选 */ { int i,j,a;
for(i=0;i<n;) { for(j=0;j<7;j++) { if(j==6) insertrear(&l,rand()%8); /* 随即抽取特别号码 */
else insertrear(&l,rand()%10); /* 随即抽取一般号码 */ }
printf("您随即抽取的第%d注号码为:",i+1); for(j=0;j<7;j++) printf("%d ",getdata(&l,j));
printf("\n1.继续 2.此注重抽:"); scanf("%d",&a);
if(a==2) { freelist(&l); clearlist(&l); continue; }
else i++; } }
write(seqlist *l,int n) /* 自选 */ { int i,j,a1; datatype k=-1;
for(i=0;i<n;) { printf("第%d注:\n",i+1); for(j=0;j<7;j++) { if(j==6) { while(1) { printf("请输入第%d个号",j+1); scanf("%d",&k); if(k<7&&k>0) break; } insertrear(&l,k);
} else { while(1) { printf("请输入第%d个号",j+1); scanf("%d",&k); if(k<9&&k>0) break; } insertrear(&l,k); } }
printf("您选取的第%d注号码为:",i+1); for(j=0;j<7;j++) printf("%d ",getdata(&l,j));
printf("\n1.继续 2.此注重抽:"); scanf("%d",&a1);
if(a1==2) { freelist(&l); clearlist(&l); continue; }
else i++; } }
void take_out() { int i,j=0;
printf("按任意键开始抽奖\n"); getch();
for(i=0;i<7;i++) { if(i==6) { while(j<max) { a=rand()%8; if(j==1) {printf("即将开出的特别号码是"); sleep(1); } printf("%d",a); delay(1000); clrscr(); j++; } printf("特别号码为:%d\n",a[6]); clrscr(); }
else { while(j<max) { a=rand()%10; if(j==1) {printf("即将开出的第%d号码是"); sleep(1); } printf("%d",a); delay(1000); clrscr(); j++; } printf("开出的第%d个号为:%d\n",i+1,a); sleep(2); } j=0; } }
[此贴子已经被作者于2004-05-06 00:02:30编辑过]
----------------解决方案--------------------------------------------------------
头文件:seqlist.h
/* 顺序表存储结构 */ #include <stdlib.h>
typedef struct { DataType *data; /* data是动态数组*/ int max,size; /* max是数组长度,size是元素个数*/ }SeqList;
void SetList(SeqList *L,int n) /* 构造函数,建立数组长度为n的空表*/ { L->data=(DataType*)malloc(n*sizeof(DataType)); if(L->data==NULL) { puts("overflow"); exit(1); } L->max=n; L->size=0; }
void FreeList(SeqList *L) /* 析构函数,释放数组空间 */ { free(L->data); }
int ListSize(SeqList *L) /* 求表长,返回值是表中元素个数 */ { return L->size; }
int ListEmpty(SeqList *L) /* 判空 */ { if(L->size==0) return 1; return 0; }
int ListFull(SeqList *L) /* 判满 */ { if(L->size==L->max) return 1; return 0; }
DataType GetData(SeqList *L,int pos) /* 取线性表中下标为pos的元素 */ { if(pos<0||pos>L->size-1) { puts("Pos out of range!"); exit(1); } return L->data[pos]; }
int Locate(SeqList *L,DataType item) /* 定位,返回元素item在线性表中的下标 */ { int i=0; while(i<L->size-1&&item!=L->data) i++; if(i<=L->size-1) return i; return -1; /* 表中无元素item,返回-1 */ }
void SetData(SeqList *L,DataType item,int pos) /* 用item更新表中下标为pos的元素 */ { if(pos<0||pos>L->size-1) { puts("Pos out of range!"); exit(1); } L->data[pos]=item; }
void Insert(SeqList *L,DataType item,int pos) /* 在表中下标pos位置插入元素item */ { int i=0; if(pos<0||pos>L->size-1) { puts("Pos out of range!"); exit(1); }
if(L->size==L->max) { puts("SeqList is full!"); exit(1); }
for(i=L->size;i!=pos;i--) L->data=L->data[i-1]; L->data[pos]=item; L->size++; }
void InsertRear(SeqList *L,DataType item) /* 尾插 */ { if(L->size==L->max) { puts("SeqList is full!"); exit(1); }
L->data[L->size]=item; L->size++; }
void DeleteList(SeqList *L,int pos) /* 删除表中下标为pos的元素 */ { int i=0; if(L->size==0) { puts("SeqList is empty!"); exit(1); }
if(pos<0||pos>L->size-1) { puts("Pos out of range!"); exit(1); }
for(i=pos+1;i<L->size-1;i++) L->data[i-1]=L->data; L->size--; }
void ClearList(SeqList *L) /* 清表 */ { L->size=0; }
----------------解决方案--------------------------------------------------------
有时间定要运行!
顶起先!
----------------解决方案--------------------------------------------------------
有HTML码不好看
----------------解决方案--------------------------------------------------------
打个包上来
----------------解决方案--------------------------------------------------------
顶一下
----------------解决方案--------------------------------------------------------
虽然没看全 但是还是顶一下先
主要是html 太麻烦 碍眼
----------------解决方案--------------------------------------------------------
发贴时,能不能高点质量,如果再这样你是自己搬起石头砸自己啊。
----------------解决方案--------------------------------------------------------
希望论坛上有多些这样的程序,当然,是要正确的.这样有利于新手学习.
[此贴子已经被作者于2004-07-01 16:03:15编辑过]
----------------解决方案--------------------------------------------------------
我么没有运行成功?????
----------------解决方案--------------------------------------------------------