Advertisement
Sawy3R11

Lab3 szuanie liniowe ALL

Apr 12th, 2016
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.48 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int szukanie_liniowe1(int Tab[], int n, int x);
  5. int *szukanie_liniowe_2(int Tab[], int n, int x, int *ilosc);
  6.  
  7. int main()
  8. {
  9.     int *Tab, x, i, flaga, n, *pozycje, ilosc;
  10.    
  11.     printf("podaj ilosc liczb: ");
  12.     scanf("%i", &n);
  13.     Tab = (int*) malloc(n*sizeof(int));
  14.     for(i=0; i<n; i++)
  15.     {
  16.         printf("\n[ %i ] = ", i);
  17.    
  18.         scanf("%i", &Tab[i]);
  19.     }
  20.  
  21.     printf("\nPodaj szukana liczbe: ");
  22.     scanf("%i", &x);
  23.     printf("\n---------------------\nSzukanie_liniowe_1 \n");
  24.     flaga = szukanie_liniowe1(Tab, n, x);
  25.     if(flaga == -1) printf("Nie ma podanej wartosciw zbiorze");
  26.     else printf("\nZnaleziono %i na pozycji [ %i ] \n", x, flaga);
  27.    
  28.     printf("\n---------------------\nSzukanie_liniowe_2 \n");
  29.     pozycje = szukanie_liniowe_2(Tab, n, x, &ilosc);
  30.     if(ilosc > 0){
  31.         printf("Znaleziono %i liczb, oto one: ", ilosc);
  32.         for(i=0; i<ilosc; i++){
  33.             printf("\n[ %i ] = %i", i, pozycje[i]);
  34.         }
  35.     }
  36.  
  37.     else printf("\nBrak takich elementów!");
  38.     printf("\n");
  39.    
  40.     system("pause");
  41.     return 0;
  42. }
  43.  
  44.  
  45. int szukanie_liniowe1(int Tab[], int n, int x)
  46. {
  47.     int i;
  48.  
  49.     for( i=0; i<n; i++)
  50.     {
  51.         if(Tab[i] == x) return i;
  52.     }
  53.     return -1;
  54. }
  55.  
  56. int *szukanie_liniowe_2(int Tab[], int n, int x, int *ilosc)
  57. {
  58.     int * tymczasowa = NULL, i;
  59.     *ilosc = 0;
  60.    
  61.  
  62.     for(i=0; i <n; i++)
  63.     {
  64.         if(Tab[i] == x){
  65.             tymczasowa = (int*) realloc(tymczasowa, (*ilosc+1)*sizeof(int));
  66.             tymczasowa [*ilosc] = i;
  67.             (*ilosc)++;
  68.         }
  69.     }
  70.     return tymczasowa;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement