九度1006 关于用cin和scanf的%s格式符输入字符串的问题

来源:互联网 发布:中学辅导软件 编辑:程序博客网 时间:2024/04/29 06:51
/*#include<iostream>
#include<memory.h>
#include<cstdio>

using namespace std;

int main()
{
        char inputstr[2010];
        int _flag=-1,i=0,k,m;
        bool flag=false;
        int length=0;
        memset(inputstr,'a',sizeof(inputstr));
        while(cin>>inputstr)  //此处用cin输入会产生
        {
                _flag=-1;
                flag=false;
                length=0;
                i=0;
                for(int j=0;j<2010;j++)
                {
                        if(inputstr[j]=='\0')
                                inputstr[j]='a';
                        if(inputstr[j]!='a')
                                length++;
                }
                inputstr[2009]='\0';
                for(i=0;i<length;i++)
                {
                        if(inputstr[i]=='z' && inputstr[i+1]=='o'&& inputstr[i+2]=='j')
                        {
                                _flag=0;
                                if(length==3)
                                {
                                        printf("Accepted\n");
                                        flag=true;
                                        break;
                                }
                                else if(inputstr[0]=='z'&&inputstr[3]=='o')
                                {
                                        printf("Wrong Answer\n");
                                        flag=true;
                                        break;
                                }
                                else
                                        break;
                        }
                        if(inputstr[i]=='z' && inputstr[i+1]=='o'&& inputstr[i+2]=='o'&&inputstr[i+3]=='j')
                        {
                                _flag=1;
                                if(length==4)
                                {
                                        printf("Accepted\n");
                                        flag=true;
                                        break;
                                }
                                else if(inputstr[0]=='z'&&inputstr[4]=='o')
                                {
                                        printf("Wrong Answer\n");
                                        flag=true;
                                        break;
                                }
                                else
                                        break;
                        }
                }
                if(flag)
                {
                        continue;
                }
                if(_flag==-1)
                         printf("Wrong Answer\n");
                else if(_flag==0)
                {
                        for(m=i-1,k=i+3;m>=0;m--,k++)
                        {
                                if(inputstr[m]!=inputstr[k])
                                        break;
                        }
                        if(m==-1)
                        {
                                if(inputstr[k]=='a')
                                        printf("Accepted\n");
                                else
                                       printf("Wrong Answer\n");
                        }
                        else
                                printf("Wrong Answer\n");
                }
                else if(_flag==1)
                {
                       for(m=i-1,k=i+4;i>=0;m--,k++)
                        {
                                if(inputstr[m]!=inputstr[k])
                                        break;
                        }
                        if(m==-1)
                        {
                                for(m=0;m<i;m++,k++)
                                {
                                        if(inputstr[m]!=inputstr[k])
                                        break;
                                }
                                if(m==i)
                                {
                                        if(inputstr[k]=='a')
                                                printf("Accepted\n");
                                        else
                                                printf("Wrong Answer\n");
                                }
                                else
                                        printf("Wrong Answer\n");
                        }
                        else
                                printf("Wrong Answer\n");
                }
                memset(inputstr,'a',sizeof(inputstr));
        }
        return 0;
}*/



#include<stdio.h>

int main()
{
      char stri[1001];
      int i,x,y,k,n,k1,k2;
      while((scanf("%s",stri))!=EOF)
      {
              k1=0;k2=0;
              for(i=0;i<1001;i++)
              {
                    if(stri[i]=='z')
                    {
                        x=i;k1++;
                    }
                    if(stri[i]=='j')
                    {
                        y=i; k2++;
                    }
                    if(stri[i]=='\0')
                    {
                        k=i-1;break;
                    }
              }
              n=y-x-1;
             if(k1==1 && k2==1 && n>=1 && (  x*n==k-y  ))
                 printf("Accepted\n");
             else    printf("Wrong Answer\n");
      }
        return 0;
 }/*
 #include<iostream>
 #include<stdio.h>
 #include<memory.h>
 using namespace std;
 int main()
 {
        char s[15];
        memset(s,'a',sizeof(s));
        cin>>s;
        cout<<s<<endl;;
        for(int i=0;i<15;i++)
        {
                printf("%c",s[i]);
        }
        cout<<endl;
        for(int i=0;i<15;i++)
        {
                printf("%d ",s[i]);
        }
        cout<<endl<<endl;
        memset(s,'a',sizeof(s));
        scanf("%s",s);
        printf("%s\n",s);
        for(int i=0;i<15;i++)
        {
                printf("%c",s[i]);
        }
        cout<<endl;
        for(int i=0;i<15;i++)
        {
                printf("%d ",s[i]);
        }
        cout<<endl<<endl;
        return 0;
 }*/

九度这道题一开始我自己分析有误,误以为只有两种情况,都是泪。。。。
无论是cin还是%s输入时字符串的\0符号会保存!!所以!!别忘了
0 0
原创粉丝点击