当前位置: 代码迷 >> C++ >> 容易 ACM exercise 出现Wrong answer 求教
  详细解决方案

容易 ACM exercise 出现Wrong answer 求教

热度:10143   发布时间:2013-02-26 00:00:00.0
简单 ACM exercise 出现Wrong answer 求教
本人第一次做 有关ACM的习题  提交后  给的回应是 Wrong Answer!
题目:
Description
设计一个程序,从一个主字符串中查找一个子字符串在主串中第一次出现的位置。主串和子串的长度不超过100。如果找不到,则输出-1.
Input
第一行输入一个整数N,说明需要进行匹配的实例数。
第二行输入第一组需要进行匹配的主串
第三行输入第一组需要匹配的子字符串。
以下各行按照上面两行的格式输入,直到输入了N组匹配实例。
Output
输出N行,每行显示对应的匹配组中子串在主串中第一次出现的位置
Sample Input
Original Transformed
3
abaaaaaa
a
bacdeagb
ac
aaaa
bb

Sample Output
Original Transformed
1
2
-1
#include<stdio.h>
int main()
{
int n,t,time=0,i,j,flag=0;
char main[50][100],other[50][100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",&main[i]);
scanf("%s",&other[i]);
}
for(t=0;t<n;t++)
{
for(i=0,j=0;main[t][i]!='\0';)
{
if(main[t][i]==other[t][j]) 
{
if(flag==0)
time=i+1;
flag=1;
i++;
j++;
}
else
{
flag=0;
time=0;
i++;
j=0;
}
if(other[t][j]=='\0')
break;
}
if(other[t][j]!='\0') time=0;
if(time==0) time=-1;
printf("%d\n",time);
}

return 0;
}





第一次做题 不知道 是格式错误  还是代码本身就有错误
求指教

------解决方案--------------------------------------------------------
二维数组很难阅读啊。。。
------解决方案--------------------------------------------------------
没必要全部输入了然后全部输出。读一组算一组是完全没问题的。
然后是一组你wa的数据:
aab
ab
------解决方案--------------------------------------------------------
ACM,,,,专坑你格式的占大多数,你重头理下思路在把printf改下,再不行在回帖我
------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
int n,t,tim=0,i,j,flag=0;
char main[100],other[100];
while(scanf("%d",&n)!=EOF)
       {
for(t=0;t<n;t++)
{
scanf("%s",main);
scanf("%s",other);
flag=0;
for(i=0,j=0;main[i]!='\0';)
{
if(main[i]==other[j]) 
{
if(flag==0)
tim=i+1;
flag=1;
i++;
j++;
}
else
{
flag=0;
tim=0;
i++;
j=0;
}
if(other[j]=='\0')
break;
}
if(other[j]!='\0') tim=0;
if(tim==0) tim=-1;
    printf("%d\n",tim);
}
        }
return 0;
}

  相关解决方案