自己测试没问题,但显示编译错误=_=

回复帖子 返回题目

@ RTSAK8 2017-12-07 18:19
#include <iostream>
#include <stdio.h>  
#include <string.h> 
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
char fk[1000001],srr[11];
long long i,j,k,sum,first;
bool p=0;
bool cs( )
{
    if(i!=0&&fk[i-1]!=32||fk[i+k-1]!=32)
    {
        return 0;
    }
    for(long long t=1;t<=k-2;t++)
    {
        if(fk[i+t]!=srr[t])
        {
            return 0;
        }
    }
    {
        if(p==0)
        {
            p=1;
            first=i;
        }
        i+=k;
        return 1;
    }
}
int main()
{
    gets(srr);
    strupr(srr);
    gets(fk);
    strupr(fk);
    k=strlen(srr);
    j=strlen(fk);
    while(srr[k]==32)
    {
        k--;
    }
    for(i=0;i<j;i++)
    {
        if(fk[i]==srr[0])
        {
            if(cs( )==1)
            {
                sum++;
            }
        }
    }
    if(sum==0)
    {
        cout<<"-1";
        return 0;
    }
    else
    {
        cout<<sum<<" "<<first;
        return 0;
    }
}
@ rts_GOD 2017-12-10 23:41 回复

我也是,也显示编译错误。

#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int ans=0,z=0,flag=0,num=0;
char temp[10000000],n[100],a[10000000][100];
int main(){
    gets(n);
    gets(temp);
    strlwr(n);
    strlwr(temp);
    for(int i=0;i<=strlen(temp)-1;++i){
        if(temp[i]!=' '){
            a[num][flag]=temp[i];
            flag++;
        }
        if(temp[i]==' '){
            if(strcmp(n,a[num])==0){
                ans++;
                if(z==0)
                z=num;
            }
            num++;
            flag=0;
        }
    }
    if(strcmp(n,a[num])==0){ 
                ans++;
                if(z==0)
                z=num;
    } 
    if(ans==0) printf("-1");
    else printf("%d %d",ans,z);
    return 0;
}