簡體   English   中英

在DEvC ++和Ideone上有效的代碼,但在競賽網站上無效

[英]Code working on DEvC++ and Ideone but not on competetion website

該代碼可在DEVCPP和IDEONE上使用,但此問題所在的網站不接受此代碼。 這是一個在線競賽,內置的編譯器在說:COMPILATION FAILED。 這是一個在str1中找到str2並返回子字符串索引(如果找到)的程序。 否則打印-1。

我知道不建議使用GOTO。 :(很抱歉。無法找到一種解決方法。

IDEONE鏈接: LINK

代碼是:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
    char s1[19], s2[19],*p,c,d,k=0;
    int i;
    gets(s1);   gets(s2);
    p = strstr(s1,s2);

    if( (strlen(s2) > strlen(s1))   ||   !p      ) 
    {printf("-1");goto ex;}

    for(i=0;i<strlen(s1); i++)
    {
        c = s1[i];
        d = s1[i+1];
        if(c == s2[k]      &&    d == s2[k+1])
        {
            printf("%d", i);
            goto ex;

        }
    }
    ex:
    return 0;
}
a.c:15:14: error: comparison between signed and unsigned integer expressions

i簽名。

a.c:19:9: error: array subscript has type 'char'

使k int。

筆記:

使用fgets而不是gets

在某些情況下, goto是可以的,例如您可以使用所使用的模式在return之前執行一些默認操作(例如,日志記錄)。 同樣,為了從內部循環中退出,請使用跳轉表(&&),並進行default:在完成了其中一種case x:之后,在case x:之后重試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM