Advertisement
Guest User

niz 2

a guest
Sep 19th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3.  
  4. void dodaj_na_kraj(int niz[], int * n, int broj) {
  5.     niz[*n] = broj;
  6.     //(*n)++;
  7.     //ili
  8.     *n = *n + 1;
  9. }
  10.  
  11. void prikazi_niz(int niz[], int n) {
  12.     for (int i = 0; i < n; i++) {
  13.         printf("\n%d. %d", (i + 1), niz[i]);
  14.     }
  15. }
  16.  
  17. void dodaj_na_pocetak(int niz[], int * n, int broj) {
  18.     //uvek treba da proverite za prve dve iteracije kada je i=*n, *n-1, *n-2
  19.     // obavezno treba proveriti za poslednju iteraciju i = 1
  20.     for (int i = *n; i > 0; i--) {
  21.         niz[i] = niz[i - 1];
  22.     }
  23.     niz[0] = broj;
  24.     (*n)++;
  25. }
  26.  
  27. void napuni_niz(int niz[], int * n) {
  28.     char uslov = 'D';
  29.     while (uslov != 'N') {
  30.         int broj;
  31.         printf("Unesi broj: ");
  32.         scanf("%d", &broj);
  33.         //dodaj_na_pocetak(niz, n, broj);
  34.         //dodaj_na_pocetak(niz, &(*n), broj);
  35.         dodaj_na_pocetak(niz, n, broj);
  36.         printf("D/N ");
  37.         getchar();
  38.         scanf("%c", &uslov);
  39.     }
  40. }
  41.  
  42. //vraca koliko puta se pojavljuje broj u nizu
  43. int frekvencija(int niz[], int n, int broj) {
  44.     int brojac = 0;
  45.     for (int i = 0; i < n; i++) {
  46.         if (niz[i] == broj) {
  47.             brojac++;
  48.         }
  49.     }
  50.     return brojac;
  51. }
  52.  
  53. //niz a je ulazni niz, njega samo citam, ne menjam ga (zato n_a prosledjujem preko vrednosti)
  54. //niz b je izlazni niz, u njega upisujem rezultat funkcije zato je n_b prosledjen kao pokazivac
  55. void bez_ponavljanja(int a[], int n_a, int b[], int * n_b) {
  56.     for (int i = 0; i < n_a; i++) {
  57.         if (frekvencija(b,  *n_b, a[i]) == 0) {
  58.             //b[*n_b] = a[i];
  59.             //(*n_b)++;
  60.             //mogli smo i da pozovemo funkciju koja dodaje elemente u niz
  61.             dodaj_na_kraj(b, n_b, a[i]);
  62.         }
  63.     }
  64. }
  65.  
  66. int main() {
  67.     int niz[100];
  68.     int n = 0;
  69.  
  70.     napuni_niz(niz, &n);
  71.     prikazi_niz(niz, n);
  72.  
  73.     int brojponavljanja = frekvencija(niz, n, 5);
  74.  
  75.     int a[100] = {2, 5, 2, 3, 7, 4};
  76.     int n_a = 6;
  77.     int b[100];
  78.     int n_b = 0;
  79.     bez_ponavljanja(a, n_a, b, &n_b);
  80.     printf("\nNiz a:");
  81.     prikazi_niz(a, n_a);
  82.     printf("\nNiz b:");
  83.     prikazi_niz(b, n_b);
  84.  
  85.     system("pause");
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement