Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. /* Se da un N si apoi N multimi de forma
  2. primu numar de pe fiecare linie este numarul de elemente din
  3. multime, se cere, sa se afiseze care sunt multimi si care nu sunt
  4. si sa se afiseze reuniunea si intersectia a 2 multimi consecutive
  5. input
  6. 5
  7. 4 1 2 3 5
  8. 4 4 6 7 5
  9. 5 6 4 9 8 5
  10. 2 1 2
  11. 3 5 9 8
  12. */
  13. #include <stdio.h>
  14. int citire(FILE *f, int n, int x[40][40])
  15. {
  16. int i, j;
  17. fscanf(f, "%d", &n);
  18. for(i = 0; i < n; i++)
  19. {
  20. fscanf(f, "%d", &x[i][0]);
  21. for(j = 1; j <= x[i][0]; j++)
  22. fscanf(f, "%d", &x[i][j]);
  23. }
  24. return n;
  25. }
  26. void verificare(FILE *g, int n, int x[40][40])
  27. {
  28. int i, j, k;
  29. for(i = 0; i < n; i++)
  30. {
  31. int ok = 0;
  32. for(j = 1; j < x[i][0]; j++)
  33. for(k = j + 1; k <= x[i][0]; k++)
  34. if(x[i][j] == x[i][k])
  35. {
  36. ok = 1;
  37. }
  38. if(ok == 1)
  39. fprintf(g, "%d nu este multime\n", i + 1);
  40. else
  41. fprintf(g, "%d este multime\n", i + 1);
  42. }
  43. }
  44. void intersectie(FILE *g, int n, int x[40][40])
  45. {
  46. int i, j, k;
  47. for(i = 0; i < n - 1; i++)
  48. {
  49. fprintf(g, "Multimile %d %d au intesectia ", i + 1, i + 2);
  50. for(j = 1; j <= x[i][0]; j++)
  51. {
  52. for(k = 1; k <= x[i + 1][0]; k++)
  53. if(x[i][j] == x[i + 1][k])
  54. {
  55. fprintf(g, "%d ", x[i][j]);
  56. }
  57. }
  58. fprintf(g, "\n");
  59. }
  60. }
  61. void reuniune(FILE *g, int n, int x[40][40])
  62. {
  63. int i, j, k;
  64. for(i = 0; i < n - 1; i++)
  65. {
  66. int y[100004] = {0};
  67. fprintf(g, "Multimile %d %d au reuniunea ", i + 1, i + 2);
  68. for(j = 1; j <= x[i][0]; j++)
  69. {
  70. y[x[i][j]]++;
  71. }
  72. for(j = 1; j <= x[i + 1][0]; j++)
  73. {
  74. y[x[i + 1][j]]++;
  75. }
  76. for(k = 0; k <= 100003; k++)
  77. if(y[k] != 0)
  78. fprintf(g, "%d ", k);
  79. fprintf(g, "\n");
  80. }
  81. }
  82. int main()
  83. {
  84. FILE *f, *g;
  85. f = fopen("in.txt", "r");
  86. g = fopen("on.txt", "w");
  87. int n, x[40][40];
  88. n = citire(f, n, x);
  89. verificare(g, n, x);
  90. fprintf(g, "\n\n\n");
  91. intersectie(g, n, x);
  92. fprintf(g, "\n\n\n");
  93. reuniune(g, n, x);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement