Facebook
From Chartreuse Teal, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 261
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void wlk(int *a);
  5. void wart(int a, int *t);
  6. void drukuj(int a, int *t);
  7. int *tab_3(int a, int *t, int b, int *w, int *c);
  8.  
  9. int main()
  10. {
  11.         int a,b,c;
  12.         int *t,*w,*tab=NULL;
  13.  
  14.         fflush(stdin);
  15.         printf("Wskazywanie elementow wspolnych 2 tablicn");
  16.         do
  17.         {
  18.                 printf("Podaj rozmiar tablicyn");
  19.                 wlk(&a);
  20.         }while (a<1);
  21.         t = (int*) malloc (a*sizeof(int));
  22.     printf("Podaj wartosci tablicyn");
  23.         wart(a,t);
  24.  
  25.         do
  26.         {
  27.                 printf("Podaj rozmiar drugiej tablicyn");
  28.                 wlk(&b);
  29.         }while (b<1);
  30.         w = (int*) malloc (b*sizeof(int));
  31.         printf("Podaj wartosci drugiej tablicyn");
  32.         wart(b,w);
  33.  
  34.         printf("n");
  35.         drukuj(a,t);
  36.         printf("n");
  37.         drukuj(b,w);
  38.  
  39.         printf("n");
  40.         tab = tab_3(a,t,b,w,&c);
  41.     drukuj(c,tab);
  42.  
  43.         free(t);
  44.         free(w);
  45.         free(tab);
  46.  
  47.         return 0;
  48. }
  49.  
  50. void wlk(int *a)
  51. {
  52.         scanf("%d",a);
  53. }
  54.  
  55. void wart(int a, int *t)
  56. {
  57.         int i=0;
  58.         do
  59.         {
  60.         scanf("%d",t+i);
  61.         i++;
  62.         }while(i<a);
  63. }
  64.  
  65. int *tab_3(int a, int *t, int b, int *w, int *c)
  66. {
  67.         int i,j,*tab,k;
  68.         tab=NULL;
  69.         k=0;
  70.         for(i=0 ; i<a ; i++)
  71.         {
  72.                 for(j=0 ; j<b ; j++)
  73.                 {
  74.                         if (*(t+i) == *(w+j))
  75.                         {
  76.                                 k++;
  77.                                 tab = (int*) realloc (tab,k);
  78.                                 *(tab+j) = *(w+j);
  79.                         }
  80.                 }
  81.         }
  82.         *c=k;
  83.         return tab;
  84. }
  85.  
  86. void drukuj(int a, int *t)
  87. {
  88.         int i;
  89.         for(i=0 ; i<a ; i++)
  90.         {
  91.                 printf("%dn",*(t+i));
  92.         }
  93. }