| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:新手第一次做ACM exercise 出现wrong answer求教
只看楼主 加入收藏
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
新手第一次做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;
}

第一次做题 不知道 是格式错误  还是代码本身就有错误
求指教
搜索更多相关主题的帖子: exercise 字符串 wrong 
2013-01-30 01:24
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
收藏
得分:0 
真心 求教
2013-01-30 01:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:18 
好复杂呀,而且还假定N不超过50,还假定字符串中无空白字符
那个字符串查找代码太复杂了,看不下去。不知道允许不允许用strstr^_^
2013-01-30 08:29
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
收藏
得分:0 
我用的是一次性输入全部数据,所以用了一个二维书组
有必要么?
50有问题?
2013-01-30 08:55
此夜望月
Rank: 2
等 级:论坛游民
帖 子:55
专家分:43
注 册:2012-12-29
收藏
得分:0 
程序应该没问题吧。。。会不会是审题失误?
2013-01-30 09:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用tyf19938在2013-1-30 08:55:37的发言:

我用的是一次性输入全部数据,所以用了一个二维书组
有必要么?
50有问题?
输入和输出本来就是独立的,只是控制台可以将他们交叉显示在一起。

如果50没有问题的话,那49会有问题吗?那48会有问题吗?……那1会有问题吗?你想一想。
2013-01-30 09:55
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
收藏
得分:0 
回复 6楼 rjsp
程序代码:
#include<stdio.h>
int main()
{
    int n,t,tim=0,i,j,flag=0;
    char main[100],other[100];
    scanf("%d",&n);
    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;
}


Solution Result

Problem ID: 47  
Solution ID: 99862  
Solution Author: Napoleon  
Wrong Answer
Time Usage: 0 ms  Memory Usage: 196 KB
//还是不对   程序本身有问题?? 格式??
2013-01-30 12:47
tyf19938
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2013-1-6
收藏
得分:0 
回复 5楼 此夜望月
我修改了 之后还是 Wrong Answer  上面有我改得代码
2013-01-30 12:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
Problem ID: 47  
Solution ID: 99862  
Solution Author: Napoleon  
Wrong Answer
Time Usage: 0 ms  Memory Usage: 196 KB
//还是不对   程序本身有问题?? 格式??

----------- 还是不对的话,就把其它错误也改了呀,我已经不知道说什么好了。我在三楼说过的问题不止一个
2013-01-30 13:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:2 
我随便写个demo,你再改改
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char str[101], sub[101];
    int n, i;
    scanf("%d",&n);
    getchar();
    for(i=0; i<n; ++i)
    {
        gets( str );
        gets( sub );
       

        const char* p = strstr( str, sub );
        printf( "%d\n", p ? (int)(p-str)+1 : -1 );
    }

    return 0;
}

2013-01-30 13:26
快速回复:新手第一次做ACM exercise 出现wrong answer求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020572 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved