📄 luck.c
字号:
/***********************/
#include "head2.h"
void luck()
{
extern DATA2 *openfile2();
int i;
long int m=0;
int b[9]={0};/*保证下标与号码位置对应***/
int a[8]={0};/*保证下标与号码位置对应***/
printf("请输入该期的中奖号码及其期号:\n");
printf("同时该期的中奖号码的信息将被保存在中奖号码文件中\n");
printf("请输入该期号码的期号:\n");
scanf("%ld",&m);
printf("请输入该期的中奖号码:\n**注意**将特别号码放在第八位输入,即最末尾否则程序会出现错误\n");
for(i=1;i<=8;i++)/***b[0]不存放任何数字***/
scanf("%d",&b[i]);
printf("请输入你保存中奖号码文件的文件名:\n");
/***中奖号码将被保存在中奖号码文件中**/
scanf("%s",filename2);
if((d1=(DATA2*)malloc(LEN2))==NULL)
{
printf("内存不足,链表创建失败!\n");
printf("该中奖号码的信息不能被保存.\n按任意键返回\n");
getch();
return;
}
if((fp=fopen(filename2,"ab"))==NULL)
{
printf("文件打开失败,\n该中奖号码的信息不能被保存.\n按任意键返回菜单\n");
getch();
return;
}
d1->name2=m;/***中奖号码的期号存入结点*****/
for(i=1;i<=8;i++)/***中奖号码的内容存入结点*****/
d1->number2[i-1]=b[i];
if(fwrite(d1,sizeof(DATA2),1,fp)!=1)
{
printf("该中奖号码的信息不能被保存\n按任意键返回菜单\n");
getch();
return;
}
printf("%d",fwrite(d1,sizeof(DATA2),1,fp));
fclose(fp);
printf("该中奖号码的信息已被保存!\n按任意键返回继续\n");
getch();
printf("****************************************\n");
/*********************************/
printf("以下文件名中请输入你保存投注号码的文件名,以便对奖:\n");
head2=openfile2();
printf("以下是文件中你保存的投注号码:\n");
print_perf2(head2);
if(head2==NULL)
{
printf("\n你没投过注,很遗憾!\n按任意键返回!");
getch();
return;
}
d1=head2;
while(d1!=NULL)
{
for(i=0;i<=6;i++)
{
a[i+1]=d1->number2[i];
}
compare(a,b,d1->name2);
d1=d1->next2;
}
printf("其余号码都没有中奖!\n");
printf("\n看完后按任意键返回!");
printf("上面的信息不保存,请看好\n*******************\n");
getch();
return;
}
/*************************************/
/*******比较投注号码与中奖号码函数****/
/***************************************/
void compare(a,b,list)/**a[8]存放投注号码b[9]存放中奖号码**/
int a[8],b[9];
long int list;/*8,9保证下标与号码位置对应;list 记录是第几注中奖***/
{
int base,str,i,j,c;
/****base记录有几个号码与基本号码相同*/
/**list记录是否有号码与特别号码相同**/
base=0;
c=0;
j=0;
str=0;
/****判断有几个号码与基本号码相同*/
for(i=1;i<=7;i++)
for(j=1;j<=7;j++)
{
c=(a[i]-b[j]);
if(!c)
{
base++;
break;
}
}
/**判断是否有号码与特别号码相同有则str加一**/
for(i=1;i<=7;i++)
if(!(a[i]-b[8]))
{
str++;
break;
}
switch(base)
{
case 7:pri(1,list);break;/***pri()是一个带参数的宏定义,输出第几注得了几等奖**/
case 6:switch(str)
{
case 1:pri(2,list);break;
case 0:pri(3,list);break;
}break;
case 5:switch(str)
{
case 1:pri(4,list);break;
case 0:pri(5,list);break;
} break;
case 4:switch(str)
{
case 1:pri(6,list);break;
case 0:pri(7,list);break;
}break;
case 3:if(str==1)pri(7,list);break;
default:break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -