题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
#include<stdio.h>
#include<string.h>
typedef struct
{
char str[100];
int num;
}people;
int main(void)
{
int n;//候选人数
scanf("%d", &n);
people a[101];//候选人姓名
people b[101];//投票人姓名
for (int i = 0; i < n; i++)
{
scanf("%s", &a[i].str);
a[i].num = 0;
}
int m;//投票人数
scanf("%d", &m);
for (int i = 0; i < m; i++)
{
scanf("%s", &b[i].str);
b[i].num = 0;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (strcmp(a[i].str, b[j].str) == 0)
{
a[i].num++;
}
}
}
int flag = 0;
int invalid = 0;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (strcmp(b[i].str, a[j].str) == 0)
{
flag++;
}
}
if (flag == 0)
{
invalid++;
}
flag = 0;
}
for (int i = 0; i < n; i++)
{
printf("%s : %d\n", a[i].str, a[i].num);
}
printf("Invalid : %d", invalid);
return 0;
}
#include<string.h>
typedef struct
{
char str[100];
int num;
}people;
int main(void)
{
int n;//候选人数
scanf("%d", &n);
people a[101];//候选人姓名
people b[101];//投票人姓名
for (int i = 0; i < n; i++)
{
scanf("%s", &a[i].str);
a[i].num = 0;
}
int m;//投票人数
scanf("%d", &m);
for (int i = 0; i < m; i++)
{
scanf("%s", &b[i].str);
b[i].num = 0;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (strcmp(a[i].str, b[j].str) == 0)
{
a[i].num++;
}
}
}
int flag = 0;
int invalid = 0;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (strcmp(b[i].str, a[j].str) == 0)
{
flag++;
}
}
if (flag == 0)
{
invalid++;
}
flag = 0;
}
for (int i = 0; i < n; i++)
{
printf("%s : %d\n", a[i].str, a[i].num);
}
printf("Invalid : %d", invalid);
return 0;
}