问题:给定一个由 n 个整数组成的未排序数组,该数组可以包含从 1 到 n 的整数。某些元素可以重复多次,而其他一些元素可以不存在于数组中。计算所有存在的元素的频率并打印缺失的元素
代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int i, j, x, t, n, m;
scanf("%d", &t);
while (t--) {
scanf("%d",&m);
int b[m];
int a[m];
int c[m];
for(i = 0; i < m; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < m; i++) {
b[i] = i + 1;
}
// for (i = 0; i < m; i++)
//{
// printf("%d ", b[i]);
//}
for (i = 0; i < m; i++) {
c[i] = 0;
}
for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
if (b[j] == a[i]) {
c[i] = c[i] + 1;
}
}
}
for (i = 0; i < m; i++) {
printf("%d ", c[i]);
}
}
}
问题:我得到的输出为 1 1 1 1 1。有人可以指出我的代码中的逻辑错误吗?