Advertisement
Guest User

stopMenadzerima.c

a guest
Jun 18th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.82 KB | None | 0 0
  1. #define  _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.  
  6.  
  7. typedef struct cvorr* PCvor;
  8. typedef struct cvorr {
  9.     int podatak;
  10.     int cifre;
  11.     PCvor sledeci;
  12. }Cvor;
  13.  
  14. typedef int TMATRICA[100][100];
  15. typedef int TNIZ[100];
  16.  
  17. int zbir_cifara(int br) {
  18.     int zbir = 0;
  19.     while (br != 0) {
  20.         zbir += br % 10;
  21.         br = br / 10;
  22.     }
  23.     return zbir;
  24. }
  25.  
  26. int vecPostoji(int br, PCvor glava) {
  27.     PCvor tekuci = glava;
  28.     while (tekuci != NULL) {
  29.         if (tekuci->podatak == br) return 1;
  30.         tekuci = tekuci->sledeci;
  31.     }
  32.     return 0;
  33. }
  34. PCvor zadatak1_1(int x[], int n) {
  35.     PCvor pom = NULL;
  36.     int i;
  37.     for (i = 0; i < n; i++) {
  38.         if (!vecPostoji(x[i], pom)) {
  39.             PCvor novi = malloc(sizeof(Cvor));
  40.             novi->podatak = x[i];
  41.             novi->cifre = zbir_cifara(x[i]);
  42.             novi->sledeci = pom;
  43.             pom = novi;
  44.         }
  45.     }
  46.     return pom;
  47. }
  48.  
  49. void zadatak1_2(PCvor glava) {
  50.     if (glava == NULL) {
  51.         printf("Prazna lista");
  52.         return;
  53.     }
  54.     while (glava != NULL) {
  55.         printf("\n%d %d\n", glava->podatak, glava->cifre);
  56.         glava = glava->sledeci;
  57.     }
  58. }
  59. void zadatak1() {
  60.     int X[] = { 1234, 381, 61, 244, 40101, 1234, 496, 28, 539 };
  61.     int n = 9;
  62.     zadatak1_2(zadatak1_1(X, n));
  63. }
  64.  
  65. void ucitaj_matricu(FILE* dat, TMATRICA mat, int* dim) {
  66.     FILE* datoteka = dat;//fopen(nazivDatoteke, "r");
  67.     int br = *dim;
  68.     int i, j;
  69.     for (i = 0; i < br; i++) {
  70.         for (j = 0; j < br; j++) {
  71.             fscanf(datoteka, "%d ", &mat[i][j]);
  72.         }
  73.     }
  74.     //fclose(datoteka);
  75. }
  76.  
  77. int nalaziSeUnutra(int br, TMATRICA mat, int n) {
  78.     int i, j;
  79.     /* ovde mi uopste nije bilo jasno sta si radio,
  80.     ali izmenio sam unutar obe petlje ide od 1 umesto od 0,
  81.     na taj nacin ce zaobici sve elemente sa oboda, i onda proveravao
  82.     da li je element koji je prosledjen funkciji jedan od elemenata
  83.     koji nisu na obodu matrica*/
  84.     for (i = 1; i < n - 1; i++) {
  85.         for (j = 1; j < n - 1; j++) {
  86.             if (br == mat[i][j])
  87.                 return 1;
  88.         }
  89.     }
  90.     return 0;
  91. }
  92.  
  93.  
  94. void pebaci_el_osim_oboda_u_niz(TMATRICA mat, int brRed, int brKol, TNIZ niz, int* n) {
  95.     int i, j;
  96.     for (i = 0; i < brRed; i++) {
  97.         for (j = 0; j < brKol; j++) {
  98.             if (nalaziSeUnutra(mat[i][j], mat, brRed)) {
  99.                 niz[(*n)++] = mat[i][j];
  100.             }
  101.         }
  102.     }
  103.  
  104. }
  105.  
  106. void ispisiNiz(TNIZ niz, int n) {
  107.     int i;
  108.     if (n == 0) printf("prazno");
  109.     for (i = 0; i < n; i++) {
  110.         printf("%d ", niz[i]);
  111.     }
  112. }
  113.  
  114. void zadatak2() {
  115.     FILE* datoteka = fopen("mat.txt", "r+");
  116.     if (datoteka == NULL) {
  117.         printf("PRAZNA DATOTEKA");
  118.     }
  119.     int brRK;
  120.     fscanf(datoteka,"%d ",&brRK);
  121.     //printf("Ucitan broj kolona: %d", brRK);
  122.     TMATRICA mat1;
  123.     TNIZ n1;
  124.     int n = 0; //zaboravio si na postavis n = 0
  125.     /* funkciji ucitajMatricu si prosledjivao naziv matrice pa nakon toga otvarao vec otvoren fajl,
  126.     promenio sam tako da funkcija prihvata samo pok na fajl*/
  127.     ucitaj_matricu(datoteka, mat1, &brRK);
  128.     pebaci_el_osim_oboda_u_niz(mat1, brRK, brRK, n1, &n);
  129.     ispisiNiz(n1,n);
  130.     fclose(datoteka);
  131. }
  132.  
  133. typedef struct reprezentacija {
  134.     int sifra;
  135.     char ime[100];
  136. }REPREZENTACIJA;
  137.  
  138. typedef struct utakmica {
  139.     int sdomacin;
  140.     int sgost;
  141.     int pdomacin;
  142.     int pgost;
  143. }UTAKMICA;
  144.  
  145. typedef struct cvor* PCVOR;
  146. typedef struct cvor {
  147.     UTAKMICA podatak;
  148.     PCVOR sledeci;
  149. }CVOR;
  150.  
  151. UTAKMICA unos() {
  152.     UTAKMICA nova;
  153.     printf("Sifra domacina: ");
  154.     scanf("%d", &nova.sdomacin);
  155.     printf("Sifra gosta: ");
  156.     scanf("%d", &nova.sgost);
  157.     printf("Poeni domacina: ");
  158.     scanf("%d", &nova.pdomacin);
  159.     printf("Poeni gosta: ");
  160.     scanf("%d", &nova.pgost);
  161.     return nova;
  162. }
  163. int uNizuRepki(int a, REPREZENTACIJA x[], int n) {
  164.     int i;
  165.     for (i = 0; i < n; i++) {
  166.         if (x[i].sifra == a) return 1;
  167.     }
  168.     return 0;
  169. }
  170.  
  171. REPREZENTACIJA* vrati(REPREZENTACIJA x[]) {
  172.     return x;
  173. }
  174.  
  175. int vecIgrana(int a, int b, PCVOR *glava) {
  176.     while (*glava != NULL) {
  177.         if ((*glava)->podatak.sdomacin == a && (*glava)->podatak.sgost == b) return 1;
  178.     }
  179.     return 0;
  180. }
  181.  
  182. int brPoenaVeciOdNule(int a) {
  183.     if (a > 0) return 1;
  184.     return 0;
  185. }
  186.  
  187. void unesiUtakmicuUListu(PCVOR* glava, UTAKMICA nova) {
  188.     PCVOR noviCvor = malloc(sizeof(CVOR));
  189.     noviCvor->podatak = nova;
  190.     noviCvor->sledeci = *glava;
  191.     *glava = noviCvor;
  192. }
  193.  
  194.  
  195. int zadatak3_1(PCVOR* glava) {
  196.     UTAKMICA nova = unos();
  197.     //file citanje
  198.     if (brPoenaVeciOdNule(nova.pdomacin) && brPoenaVeciOdNule(nova.pgost) /*&& !vecIgrana(nova.sdomacin, (*glava)) && !vecIgrana(nova.sgost, (*glava))*/) {
  199.         printf("Uneta nova utakmica");
  200.         return 1;
  201.     }
  202.     return 0;
  203. }
  204.  
  205. void zadatak3() {
  206.     int m;
  207.     REPREZENTACIJA xr[] = {
  208.     {1,"Srbija" },
  209.     {2, "Sjedinjene Americke Drzave"},
  210.     {3, "Litvanija"},
  211.     {4, "Spanija"}
  212.     };
  213.     int nr = 4;
  214.     //file upisivanje
  215.     do {
  216.         printf("\n-----------------");
  217.         printf("\n       MENI      ");
  218.         printf("\n-----------------");
  219.         printf("\n1.Unesi rezultat utakmice: ");
  220.         printf("\n2.Formiraj konacnu tabelu plasmana reprezentacija");
  221.         printf("\n3.Prikazi tabelu reprezentacija");
  222.         printf("\n4.Generisi izvestaj trenutnog plasmana reprezentacija: ");
  223.         printf("\n5.Povratak u glavni meni");
  224.         printf("\nUnesite vas izbor: ");
  225.         scanf("%d", &m);
  226.         switch (m) {
  227.         case 1: /*if(zadatak3_1()) printf("Uneta je utakmica");*/ break;
  228.         case 2: /*zadatak2();*/ break;
  229.         case 3: /*zadatak3();*/ break;
  230.         case 4: /*zadatak3();*/ break;
  231.         case 5: printf("\nPovratak u glavni meni\n"); break;
  232.         default: printf("\n\nNedozvoljeni broj!\n\n");
  233.         }
  234.     } while (m != 5);
  235.  
  236. }
  237.  
  238. void glavniMeni() {
  239.     int n;
  240.  
  241.     do {
  242.         printf("\n-----------------");
  243.         printf("\n       MENI      ");
  244.         printf("\n-----------------");
  245.         printf("\nPokreni zadatak 1.");
  246.         printf("\nPokreni zadatak 2.");
  247.         printf("\nPokreni zadatak 3.");
  248.         printf("\n\nUnesite vas izbor: ");
  249.         scanf("%d", &n);
  250.         switch (n) {
  251.         case 1: zadatak1(); break;
  252.         case 2: zadatak2(); break;
  253.         case 3: zadatak3(); break;
  254.         case 0: printf("Kraj rada"); break;
  255.         default: printf("\n\nNedozvoljeni broj!\n\n");
  256.         }
  257.     } while (n != 0);
  258.  
  259. }
  260.  
  261. int main() {
  262.     glavniMeni();
  263.     return 0;
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement