判断两个数组是否包含相同元素.c 972 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <stdio.h>
  2. int same_set(int a[], int b[], int len) {
  3. int freq_a[101] = {0}; // 数组a中元素的频次
  4. int freq_b[101] = {0}; // 数组b中元素的频次
  5. int i;
  6. // 计算数组a和数组b中每个元素的频次
  7. for (i = 0; i < len; i++) {
  8. freq_a[a[i]]++;
  9. freq_b[b[i]]++;
  10. }
  11. // 检查元素频次是否相同
  12. for (i = 1; i <= 100; i++) {
  13. if (freq_a[i] != freq_b[i]) {
  14. return 0; // 如果有元素频次不相同,则返回0
  15. }
  16. }
  17. return 1; // 所有元素频次都相同,返回1
  18. }
  19. int main() {
  20. int len;
  21. int i;
  22. scanf("%d", &len); // 输入数组元素个数
  23. int a[len];
  24. int b[len];
  25. // 输入第一个数组元素
  26. for (i = 0; i < len; i++) {
  27. scanf("%d", &a[i]);
  28. }
  29. // 输入第二个数组元素
  30. for (i = 0; i < len; i++) {
  31. scanf("%d", &b[i]);
  32. }
  33. // 调用函数判断两个数组是否包含相同元素
  34. if (same_set(a, b, len) == 1) {
  35. printf("1\n");
  36. } else {
  37. printf("0\n");
  38. }
  39. return 0;
  40. }