求解 nbuoj 1006 Problem G快乐字符串

不知道为什么,在codeblocks里输入数据是对的,但是在oj系统里总是有问题。。实在看不出究竟哪里有问题,大佬们能不能帮忙看一下qaq

我的代码和输入输出都在下方,感谢好心人的帮助

(顺便吐槽一下oj,在给期望输出和实际输出的时候能不能给全???)

题目描述

凡是包含有happy作为子串的字符串都被称为快乐的字符串(happy必须连续),给你若干个字符串,你能把所有快乐的字符串都找出来么?

输入要求

第一行输入一个正整数n表示有n个字符串。
接下来输入n行,每行表示一个字符串。(n<=100,每个字符串不超过100)

输出要求

输出所有快乐的字符串,每行一个,按字典序排序。

输入样例

6
sdffhappysdfds
asdfhapfsdpy
dfdhappy
rdfgf
fdsfssd
happy

输出样例

dfdhappy
happy
sdffhappysdfdsw

我的代码如下

#include<stdio.h>
#include<string.h>
int main()
{
    int n,i,j,k,len,p=0,t=0;
    char ch[100][100];//各个字符串
    char se[5]={"appy"};
    char hc[100][100],m[100],tt[100];//hc为筛选出的字符串,m用于排序,为某一次循环中的最小字符串,tt用于交换
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++)//同时完成输入和筛选
      {   p=0;
          gets(ch[i]);
          len=strlen(ch[i]);
          for(j=0;j<len;j++)//字符串第一个字符开始搜寻h,如果有则对下面四个字符串搜索
          {
              if(ch[i][j]=='h')
              {
                  for(k=0;k<4;k++)
                  {
                      if(ch[i][j+k+1]==se[k])
                        p++;
                      else
                        break;
                  }
              }
              if(p==4)//找到含有happy的字符串了以后,将筛选出的的ch录入到hc中
              {strcpy(hc[t],ch[i]);t++;break;}
          }
      }
      for(i=0;i<t;i++)//排序部分
      {    strcpy(m,hc[i]);
           for(j=i+1;j<t;j++)
           {
              if(strcmp(m,hc[j])>0)
              {
                  strcpy(tt,m);
                  strcpy(m,hc[j]);
                  strcpy(hc[j],tt);
              }
           }
          strcpy(hc[i],m);
      }
      for(i=0;i<t;i++)//输出
        puts(hc[i]);
}

输入样例里的输入,结果是对的

oj的判定是这样的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值