题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
#include <stdio.h>
#include <string.h>
struct tj{
char name[20];//注意数组与字符,其实与main函数定义区别不大
int num;
};
int main()
{
int a, b,c,f,g,inva,aa,h,k,m;
char s1;
char str1[300][300]={'\0'};
scanf("%d",&a);
struct tj hx[a];
aa=2*a;
for(b=0;b<a;b++)
{
scanf("%s",&hx[b].name);//输入字符串,遇到空格、换行和\0结束
hx[b].num=0;
}
c=0;
scanf("%d",&c);
k=0;
m=0;
for(h=0;h<c;h++)
{
scanf("%s",&str1[h][0]); //再次输入字符串
}
inva=0;
for(f=0;f<c;f++)
{
for(g=0;g<a;g++)
{
if(strcmp(str1[f],hx[g].name)==0) //字符串比较
{
hx[g].num=hx[g].num+1;
m++;
}
}
}
for(g=0;g<a;g++)
{
printf("%s : %d\n",hx[g].name,hx[g].num);
}
printf("Invalid : %d\n",c-m);
return 0;
}

查看14道真题和解析