周四新生训练 Book Club

Book Club http://ecustoj.sinaapp.com/problemshow.php?pro_id=428

这道模拟题,应该注意输入输出格式,这里非常容易出问题,几次测试不过都是这里出的问题。
#include<cstdio>
#include<cstring>
using namespace std;
int a[50005][55];
int vis[50005];

int main()
{

    int N,NQ,P,Q,A,count,i,j;
    while(scanf("%d %d %d",&N,&NQ,&P)!=EOF)
    {
       count=0;
       memset(a,0,sizeof(a));
       memset(vis,0,sizeof(vis));
       for(i=1;i<=N;i++)
       for(j=0;j<NQ;j++)
       scanf("%d",&a[i][j]);

       for(i=1;i<=P;i++)
       {
           scanf("%d %d",&Q,&A);
           for(j=1;j<=N;j++)
           {
               if(a[j][(Q-1)]==A)
               vis[j]++;
           }

       }
       for(i=1;i<=N;i++)
       {
           if(vis[i]==P)
           count++;

       }
       printf("%d\n",count);
    }
    return 0;

}

scanf("%s",&s);  //读入一个字符串s,遇到空格或者换行符时停止;("%s"为字符串的格式控制符)
gets(s);         //读入一行字符,可以接收空格;
printf("%s",s);  //输出一个字符串;
puts(s);         //将字符串输出在一行上;

 存在这样一种用法,先char a[100],然后gets(a),假设输入的字符串是10个字符,那么会gets自动在最后一位后加上一个‘\0’,这样一来,我们可以for(i=1;a[i]!='\0';i++)在已经输入的那些字符串中进行搜索,而不去管空的数组空间,另外数字在字符中是这样‘0’,‘1’,‘5’的。

 

原文地址:https://www.cnblogs.com/whatthefy/p/2987786.html