链表题
一、链表遍历(JSU-ZJJ)
小T昨天很不爽
昨天路过体彩销售点买了2注生日号码玩,当晚开奖后……
小T号码: 8902088
中奖号码:3902888
一个号码不对就差了十几万……
小T想:为什么规则是那样玩的啊……为什么5个号码要连续才能中二等奖啊……
我自己创建个规则,开N个数字,只要数字位置对了不一定要连续就可以有奖。
现在有一个中奖号码,有一个兑奖号码,小T想知道一共有多少个数字位置正确的,N太大了……
二、输入格式
``输入数据第一行包含一个整数T表示有T组测试数据
对于每组测试数据
第一行包含一个整数N,表示有N个数字
第二行包含N个中奖号码
第三行包含N个兑奖号码
输出格式
样例输入
样例输出
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
struct node{
char data;
struct node *next;
};
int main()
{
struct node *p,*q,*head1,*head2,*t1,*t2;
int i,j,temp,n;
char a;
cin>>temp;
while(temp--)
{
head1=head2=NULL;
cin>>n;
for(i=0;i<n;i++)
{
p=(struct node *)malloc(sizeof(struct node));
cin>>a;
p->data=a;
p->next=NULL;
if(head1==NULL)
{
head1=p;
}
else
q->next=p;
q=p;
}
for(i=0;i<n;i++)
{
p=(struct node *)malloc(sizeof(struct node));
cin>>a;
p->data=a;
p->next=NULL;
if(head2==NULL)
{
head2=p;
}
else
q->next=p;
q=p;
}
int k=0;
t1=head1,t2=head2;
for(i=0;i<n;i++)
{
if(t1->data==t2->data)
k++;
t1=t1->next;
t2=t2->next;
}
cout<<k<<endl;
}
}