、、怎么照着写都能写错,结果都不一样

#include <iostream>
#include <algorithm>

using namespace std;

int main ()
{
    string s1,s2;
    cin>>s1>>s2;
    int a[100]={0};
    int num=0,k=0,maxn=0;
    for (int i=0;i<s1.size();i++)
    {
        for (int j=0;j<s2.size();j++)
        {
            if (s1[i]==s2[j])//当相同时,开始累加;
            {
                num=0;
                for (int m=i,n=j;m<s1.size()&&n<s2.size();m++,n++)
                {num++;
                    if (num>maxn)
                        maxn=num;}
            }
        }
        //num=0;
    }
        cout<<maxn;


}