Advertisement
eniodordan

[AISP] LV1

Oct 26th, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void gen_arr(float V[], int n, float dg, float gg) {
  6.     int i;
  7.     srand((unsigned)time(NULL));
  8.     for (i = 0; i < n; i++) {
  9.         V[i] = dg + (float)rand() / RAND_MAX * (gg - dg);
  10.     }
  11. }
  12.  
  13. int sekv_pret(float V[], int n, float x) {
  14.     int i;
  15.     for (i = 0; i < n; i++) {
  16.         if (V[i] == x) {
  17.             return i;
  18.         }
  19.     }
  20.     return -1;
  21. }
  22.  
  23. void swap(float *xp, float *yp) {
  24.     float temp = *xp;
  25.     *xp = *yp;
  26.     *yp = temp;
  27. }
  28.  
  29. void sort(float V[], int n) {
  30.     int i, j;
  31.     for (i = 0; i < n - 1; i++) {
  32.         for (j = 0; j < n - i - 1; j++) {
  33.             if (V[j] > V[j + 1]) {
  34.                 swap(&V[j], &V[j + 1]);
  35.             }
  36.         }
  37.     }
  38. }
  39.  
  40. int bin_pret(float V[], int n, float x) {
  41.     int r, l = 0;
  42.     r = n - 1;
  43.  
  44.     while (l <= r) {
  45.         int m = l + (r - l) / 2;
  46.  
  47.         if (V[m] == x)
  48.             return m;
  49.         if (V[m] < x)
  50.             l = m + 1;
  51.         else
  52.             r = m - 1;
  53.     }
  54.     return -1;
  55. }
  56.  
  57. int main()
  58. {
  59.     int i, n, dg, gg;
  60.     float *V, x;
  61.    
  62.     printf("Unesite zelejni broj elemenata: ");
  63.     scanf("%d", &n);
  64.  
  65.     V = (float *)malloc(n * sizeof(float));
  66.     if (V == NULL)
  67.         return 1;
  68.  
  69.     gen_arr(V, n, 0, 10);
  70.     /*for (i = 0; i < n; i++) {
  71.         printf("%f ", V[i]);
  72.     }*/
  73.  
  74.     /*printf("\nUnesite trazeni element: ");
  75.     scanf("%f", &x);*/
  76.     printf("Element se nalazi na %d. mjestu\n", sekv_pret(V, n, 10));
  77.  
  78.     sort(V, n);
  79.     /*for (i = 0; i < n; i++) {
  80.         printf("%.2f ", V[i]);
  81.     }*/
  82.  
  83.     /*printf("\nUnesite trazeni element: ");
  84.     scanf("%f", &x);*/
  85.     printf("Element se nalazi na %d. mjestu\n", bin_pret(V, n, 10));
  86.  
  87.     free(V);
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement