中奖计算

来源:互联网 发布:数据的离散程度用描述 编辑:程序博客网 时间:2024/05/01 13:12

#include<stdio.h>
#include<string>
/*
中奖计算

某抽奖活动的规则是:每位参与者在纸上写下一个8位数的号码。最后通过摇奖的办法随机产生一个8位数字。参与者写下的数字中最多有多少个连续位与开奖号码中的相同,则称为中了几个号。
例如:小张写的数字是:12345678,而开奖号码是:42347856。则称小张中了3个号,因为其中最长的相同连续位是:“234”。如果小张写的是:87654321,则他只中了一个号。
下面的代码根据传入的参数,返回中了几个号。其中:a表示被评价的号码,b表示摇号产生的数字。请填写缺少的代码。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
*/

void g(int a, int b)
{
 char sa[]="00000000";
 char sb[]="00000000";
 int n = 0;
 int i,j;

 sprintf(sa,"%8d",a);
 sprintf(sb,"%8d",b);
 for(i=0; i<8; i++)
 {
  for(j=1; j<=8-i; j++)
  {
   char t = sa[i+j] ;////
   sa[i+j] = 0;
   if(strstr(sb, sa+i))
   {
    if(j>n) n=j;////
   }
   sa[i+j] = t;
  }
 }

 //return n;
 printf("%d\n",n);
}

int main()
{
int a=12345678;
int b=42347856;
g(a,b);


}