Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <<<<<<<<<<<<<<<<MAIN.CPP>>>>>>>>>>>>>>>>>>>
- #include <stdio.h>
- #include <stdlib.h>
- #include "Header.h"
- int main() {
- int n, m;
- IGRAC *pok = NULL;
- int indeks;
- printf("Unesite broj igraca: ");
- do {
- scanf("%d", &n);
- } while (n < 1 || n>10);
- pok = alokacija(n);
- if (pok == NULL) {
- printf("Neuspjelo zauzimanje memorije\n");
- exit(EXIT_FAILURE);
- }
- else {
- printf("Uspjesno zauzimanje memorije\n");
- }
- FILE* dat = NULL;
- dat = fopen("Popis_igraca.txt", "w");
- unos(pok, n);
- ispis(pok, n, dat);
- sort(pok, n);
- printf("Popis sortiran!\n");
- fprintf(dat, "\nIspis igraca nakon sortiranja po brojevima: \n");
- ispis(pok, n, dat);
- fclose(dat);
- LOOP:printf("Unesite broj dresa igraca kojeg zelite provjeriti da li je na popisu: ");
- do {
- scanf("%d", &m);
- } while (m<1 || m>99);
- indeks = Binarno(pok, n, m);
- if (indeks == -1) {
- printf("Nema igraca s brojem %d na popisu!\n", m);
- goto LOOP;
- }
- else {
- printf("Igrac s brojem %d je na popisu!\n", m);
- }
- free(pok);
- return 0;
- }
- <<<<<<<<<<<<<FUNKCIJE.cpp>>>>>>>>>>>>>>
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include "Header.h"
- IGRAC* alokacija(int n) {
- return (IGRAC*)calloc(n, sizeof(IGRAC));
- }
- void unos(IGRAC* igrac, int n) {
- for (int i = 0; i < n; i++) {
- getchar();
- printf("Unesite ime %d. igraca: ", i + 1);
- fgets((igrac + i)->ime, 30, stdin);
- printf("Unesite ime kluba %d. igraca: ", i + 1);
- fgets((igrac + i)->klub, 30, stdin);
- printf("Unesite broj dresa %d. igraca: ", i + 1);
- scanf("%d", &(igrac + i)->br);
- printf("Unesite datum rodenja %d. igraca: ", i + 1);
- scanf("%d %d %d", &(igrac + i)->rod.dan, &(igrac + i)->rod.mjesec, &(igrac + i)->rod.god);
- printf("\n");
- }
- }
- void ispis(IGRAC* igrac, int n, FILE* dat) {
- for (int i = 0; i < n; i++) {
- fprintf(dat, "Podatci o %d. igarcu: \n", i + 1);
- fprintf(dat, "\n");
- fprintf(dat, "Ime igraca: %s", (igrac + i)->ime);
- fprintf(dat, "Klub za koji igra je: %s", (igrac + i)->klub);
- fprintf(dat, "Broj dresa: %d \n", (igrac + i)->br);
- fprintf(dat, "Datum rodenja: %d/%d/%d \n", (igrac + i)->rod.dan, (igrac + i)->rod.mjesec, (igrac + i)->rod.god);
- fprintf(dat, "\n");
- }
- }
- void sort(IGRAC* igrac, int n) {
- int j, i;
- IGRAC tmp;
- for (i = 0; i<n - 1; i++)
- {
- for (j = i + 1; j <n; j++)
- {
- if (igrac[j].br < igrac[i].br)
- {
- tmp = igrac[j];
- igrac[j] = igrac[i];
- igrac[i] = tmp;
- }
- }
- }
- }
- int Binarno(IGRAC* igrac, int n, int m) {
- int dg = 0;
- int gg = n - 1;
- int s = -1;
- while (dg <= gg) {
- s = (dg + gg) / 2;
- if ((igrac + s)->br == m) {
- return s;
- }
- else if ((igrac + s)->br > m) {
- gg = s - 1;
- }
- else {
- dg = s + 1;
- }
- }
- return -1;
- }
- <<<<<<<<<<<<<HEADER.h>>>>>>>>>>>>>>>>>>
- #ifndef HEADER_H
- #define HEADER_H
- typedef struct datum {
- int dan;
- int mjesec;
- int god;
- }DATUM;
- typedef struct igrac {
- char ime[30];
- char klub[30];
- int br;
- DATUM rod;
- }IGRAC;
- IGRAC* alokacija(int);
- void unos(IGRAC*, int);
- void ispis(IGRAC*, int, FILE*);
- void sort(IGRAC*, int);
- int Binarno(IGRAC*, int, int);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement