Facebook
From Commodious Treeshrew, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 238
  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 tablic\n");
  16.         do
  17.         {
  18.                 printf("Podaj rozmiar tablicy\n");
  19.                 wlk(&a);
  20.         }while (a<1);
  21.         t = (int*) malloc (a*sizeof(int)+1);
  22.     printf("Podaj wartosci tablicy\n");
  23.         wart(a,t);
  24.  
  25.         do
  26.         {
  27.                 printf("Podaj rozmiar drugiej tablicy\n");
  28.                 wlk(&b);
  29.         }while (b<1);
  30.         w = (int*) malloc (b*sizeof(int)+1);
  31.         printf("Podaj wartosci drugiej tablicy\n");
  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.         printf("%d\n",c);
  42.         printf("\n");
  43.     drukuj(c,tab);
  44.        
  45.  
  46.                 free(t);
  47.                 free(w);
  48.                 free(tab);
  49.         getche();
  50.         return 0;
  51. }
  52.  
  53. void wlk(int *a)
  54. {
  55.         scanf_s("%d",a);
  56. }
  57.  
  58. void wart(int a, int *t)
  59. {
  60.         int i=0;
  61.         do
  62.         {
  63.         scanf_s("%d",t+i);
  64.         i++;
  65.         }while(i<a);
  66. }
  67.  
  68. int *tab_3(int a, int *t, int b, int *w, int *c)
  69. {
  70.         int i,j,*tab,k;
  71.         tab=NULL;
  72.         k=0;
  73.         for(i=0 ; i<a ; i++)
  74.         {
  75.                 for(j=0 ; j<b ; j++)
  76.                 {
  77.                         if (*(t+i) == *(w+j))
  78.                         {
  79.                                 k++;
  80.                                 tab = (int*) realloc (tab,k+1);
  81.                                 *(tab+j) = *(w+j);
  82.                         }
  83.                 }
  84.         }
  85.         *c=k;
  86.         return tab;
  87. }
  88.  
  89. void drukuj(int a, int *t)
  90. {
  91.         int i;
  92.         for(i=0 ; i<a ; i++)
  93.         {
  94.                 printf("%d\n",*(t+i));
  95.         }
  96. }