horn0603 发表于 2017-3-12 13:42:44

求助帖 这个怎么做 求解


E忙碌的双11
Time Limit:1000MSMemory Limit:65535K
题型: 编程题   语言: 无限制
描述
今天是一年一度的双11购物节,人们在网上疯狂的购物,但对于快递员小张和小王来说,却是一个不太好过的日子。
面对成山的需要送出去的快件,小张和小王想到了一个点子,他们每人各说出自己的幸运数字(0~9,可以多个),
如果快件单号中出现了某人的幸运数字,则该人今天就派送该快件;但是,如果快件单号中两个人的幸运数字都出
现了,小张和小王都不会去派送该快件,因为他们都希望对方去送,而不是自己,因为今天实在是太忙了。
现在提供一批快件单号,请输出小张和小王各自今天要派送的快件数量。

输入格式
第一行一个整数n(n<10),为小张的幸运数字的个数;
第二行n个数(0到9之间),为小张的幸运数字;
第三行一个整数m(m<10),为小王的幸运数字的个数;
第四行m个数(0到9之间),为小王的幸运数字;
第五行一个整数T(T<=10000),为快件数
此后T行,每行一个快件单号(int范围)
输出格式
第一行小张今天要派送的快件数量
第二行小王今天要派送的快件数量
输入样例
3
2 4 6
2
0 8
3
1234
5678
333
输出样例
1
0
Hint
1234中有小张的幸运数字2和4;5678中有小张的幸运数字6,也有小王的幸运数字8;333不含幸运数字
Provider admin

horn0603 发表于 2017-3-12 14:54:03

自行AC#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
    int n,m,T,x;
    int z=0,w=0;
    int zhang,wang;
    scanf("%d",&n);
    for(int i=0; i<n; i++)
      scanf("%d",&zhang);
    scanf("%d",&m);
    for(int i=0; i<m; i++)
    scanf("%d",&wang);
    scanf("%d",&T);
    T=T+1;
    while(T--)
    {
      int i,f1=0,f2=0;//f1标识张;f2标示王
      char c;
      for(i=0;(c=getchar())!='\n';i++);
            c='\0';
         for(int j=0;j<n;j++)
         {
             for(int k=0;k<i;k++)
             {
               if(zhang==c-'0')
                  f1=1;
             }
         }
         for(int j=0;j<m;j++)
         {
             for(int k=0;k<i;k++)
             {
               if(wang==c-'0')
                  f2=2;
             }
         }
         if(f1+f2==1) z++;
         if(f1+f2==2) w++;
    }
    printf("%d\n%d\n",z,w);

}

horn0603 发表于 2017-3-12 14:54:43

虽然乱了点,抱歉

horn0603 发表于 2017-3-12 15:04:19

RE: 已解决 这个怎么做 求解

小山童鞋 发表于 2017-3-12 19:43:20

自己占的三楼什么鬼
页: [1]
查看完整版本: 求助帖 这个怎么做 求解