Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef struct cvorr* PCvor;
- typedef struct cvorr {
- int podatak;
- int cifre;
- PCvor sledeci;
- }Cvor;
- typedef int TMATRICA[100][100];
- typedef int TNIZ[100];
- int zbir_cifara(int br) {
- int zbir = 0;
- while (br != 0) {
- zbir += br % 10;
- br = br / 10;
- }
- return zbir;
- }
- int vecPostoji(int br, PCvor glava) {
- PCvor tekuci = glava;
- while (tekuci != NULL) {
- if (tekuci->podatak == br) return 1;
- tekuci = tekuci->sledeci;
- }
- return 0;
- }
- PCvor zadatak1_1(int x[], int n) {
- PCvor pom = NULL;
- int i;
- for (i = 0; i < n; i++) {
- if (!vecPostoji(x[i], pom)) {
- PCvor novi = malloc(sizeof(Cvor));
- novi->podatak = x[i];
- novi->cifre = zbir_cifara(x[i]);
- novi->sledeci = pom;
- pom = novi;
- }
- }
- return pom;
- }
- void zadatak1_2(PCvor glava) {
- if (glava == NULL) {
- printf("Prazna lista");
- return;
- }
- while (glava != NULL) {
- printf("\n%d %d\n", glava->podatak, glava->cifre);
- glava = glava->sledeci;
- }
- }
- void zadatak1() {
- int X[] = { 1234, 381, 61, 244, 40101, 1234, 496, 28, 539 };
- int n = 9;
- zadatak1_2(zadatak1_1(X, n));
- }
- void ucitaj_matricu(FILE* dat, TMATRICA mat, int* dim) {
- FILE* datoteka = dat;//fopen(nazivDatoteke, "r");
- int br = *dim;
- int i, j;
- for (i = 0; i < br; i++) {
- for (j = 0; j < br; j++) {
- fscanf(datoteka, "%d ", &mat[i][j]);
- }
- }
- //fclose(datoteka);
- }
- int nalaziSeUnutra(int br, TMATRICA mat, int n) {
- int i, j;
- /* ovde mi uopste nije bilo jasno sta si radio,
- ali izmenio sam unutar obe petlje ide od 1 umesto od 0,
- na taj nacin ce zaobici sve elemente sa oboda, i onda proveravao
- da li je element koji je prosledjen funkciji jedan od elemenata
- koji nisu na obodu matrica*/
- for (i = 1; i < n - 1; i++) {
- for (j = 1; j < n - 1; j++) {
- if (br == mat[i][j])
- return 1;
- }
- }
- return 0;
- }
- void pebaci_el_osim_oboda_u_niz(TMATRICA mat, int brRed, int brKol, TNIZ niz, int* n) {
- int i, j;
- for (i = 0; i < brRed; i++) {
- for (j = 0; j < brKol; j++) {
- if (nalaziSeUnutra(mat[i][j], mat, brRed)) {
- niz[(*n)++] = mat[i][j];
- }
- }
- }
- }
- void ispisiNiz(TNIZ niz, int n) {
- int i;
- if (n == 0) printf("prazno");
- for (i = 0; i < n; i++) {
- printf("%d ", niz[i]);
- }
- }
- void zadatak2() {
- FILE* datoteka = fopen("mat.txt", "r+");
- if (datoteka == NULL) {
- printf("PRAZNA DATOTEKA");
- }
- int brRK;
- fscanf(datoteka,"%d ",&brRK);
- //printf("Ucitan broj kolona: %d", brRK);
- TMATRICA mat1;
- TNIZ n1;
- int n = 0; //zaboravio si na postavis n = 0
- /* funkciji ucitajMatricu si prosledjivao naziv matrice pa nakon toga otvarao vec otvoren fajl,
- promenio sam tako da funkcija prihvata samo pok na fajl*/
- ucitaj_matricu(datoteka, mat1, &brRK);
- pebaci_el_osim_oboda_u_niz(mat1, brRK, brRK, n1, &n);
- ispisiNiz(n1,n);
- fclose(datoteka);
- }
- typedef struct reprezentacija {
- int sifra;
- char ime[100];
- }REPREZENTACIJA;
- typedef struct utakmica {
- int sdomacin;
- int sgost;
- int pdomacin;
- int pgost;
- }UTAKMICA;
- typedef struct cvor* PCVOR;
- typedef struct cvor {
- UTAKMICA podatak;
- PCVOR sledeci;
- }CVOR;
- UTAKMICA unos() {
- UTAKMICA nova;
- printf("Sifra domacina: ");
- scanf("%d", &nova.sdomacin);
- printf("Sifra gosta: ");
- scanf("%d", &nova.sgost);
- printf("Poeni domacina: ");
- scanf("%d", &nova.pdomacin);
- printf("Poeni gosta: ");
- scanf("%d", &nova.pgost);
- return nova;
- }
- int uNizuRepki(int a, REPREZENTACIJA x[], int n) {
- int i;
- for (i = 0; i < n; i++) {
- if (x[i].sifra == a) return 1;
- }
- return 0;
- }
- REPREZENTACIJA* vrati(REPREZENTACIJA x[]) {
- return x;
- }
- int vecIgrana(int a, int b, PCVOR *glava) {
- while (*glava != NULL) {
- if ((*glava)->podatak.sdomacin == a && (*glava)->podatak.sgost == b) return 1;
- }
- return 0;
- }
- int brPoenaVeciOdNule(int a) {
- if (a > 0) return 1;
- return 0;
- }
- void unesiUtakmicuUListu(PCVOR* glava, UTAKMICA nova) {
- PCVOR noviCvor = malloc(sizeof(CVOR));
- noviCvor->podatak = nova;
- noviCvor->sledeci = *glava;
- *glava = noviCvor;
- }
- int zadatak3_1(PCVOR* glava) {
- UTAKMICA nova = unos();
- //file citanje
- if (brPoenaVeciOdNule(nova.pdomacin) && brPoenaVeciOdNule(nova.pgost) /*&& !vecIgrana(nova.sdomacin, (*glava)) && !vecIgrana(nova.sgost, (*glava))*/) {
- printf("Uneta nova utakmica");
- return 1;
- }
- return 0;
- }
- void zadatak3() {
- int m;
- REPREZENTACIJA xr[] = {
- {1,"Srbija" },
- {2, "Sjedinjene Americke Drzave"},
- {3, "Litvanija"},
- {4, "Spanija"}
- };
- int nr = 4;
- //file upisivanje
- do {
- printf("\n-----------------");
- printf("\n MENI ");
- printf("\n-----------------");
- printf("\n1.Unesi rezultat utakmice: ");
- printf("\n2.Formiraj konacnu tabelu plasmana reprezentacija");
- printf("\n3.Prikazi tabelu reprezentacija");
- printf("\n4.Generisi izvestaj trenutnog plasmana reprezentacija: ");
- printf("\n5.Povratak u glavni meni");
- printf("\nUnesite vas izbor: ");
- scanf("%d", &m);
- switch (m) {
- case 1: /*if(zadatak3_1()) printf("Uneta je utakmica");*/ break;
- case 2: /*zadatak2();*/ break;
- case 3: /*zadatak3();*/ break;
- case 4: /*zadatak3();*/ break;
- case 5: printf("\nPovratak u glavni meni\n"); break;
- default: printf("\n\nNedozvoljeni broj!\n\n");
- }
- } while (m != 5);
- }
- void glavniMeni() {
- int n;
- do {
- printf("\n-----------------");
- printf("\n MENI ");
- printf("\n-----------------");
- printf("\nPokreni zadatak 1.");
- printf("\nPokreni zadatak 2.");
- printf("\nPokreni zadatak 3.");
- printf("\n\nUnesite vas izbor: ");
- scanf("%d", &n);
- switch (n) {
- case 1: zadatak1(); break;
- case 2: zadatak2(); break;
- case 3: zadatak3(); break;
- case 0: printf("Kraj rada"); break;
- default: printf("\n\nNedozvoljeni broj!\n\n");
- }
- } while (n != 0);
- }
- int main() {
- glavniMeni();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement