Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define OKVIRI 10
- #define ZAHTJEVI 100
- struct _o {
- int zastavica, okvir;
- };
- enum _t {
- UMETNUT, POGODAK
- };
- typedef struct _o Stranica;
- typedef enum _t Tip;
- Stranica sveStranice[OKVIRI];
- int trenutniIndeks = 0, pokazivac = 0;
- int charUBroj(char *niz) {
- int i = strlen(niz) - 1;
- int baza = 1;
- int r = 0;
- for (; i >= 0; i--, baza *= 10) {
- r += baza * (niz[i] - '0');
- }
- return r;
- }
- int zaglavlje(int brOkvira) {
- int i, kraj;
- printf("#N");
- for (i = 0; i < brOkvira; i++) {
- printf("%3d", i + 1);
- }
- printf("\n");
- for (i = 0, kraj = brOkvira * 3 + 2; i < kraj; i++) {
- printf("-");
- }
- printf("\n");
- }
- int vratiIndeks(int zahtjev) {
- int i;
- for (i = 0; i < trenutniIndeks; i++) {
- if (sveStranice[i].okvir == zahtjev) { return i; }
- }
- return -1;
- }
- int umetni(int zahtjev, int brOkvira) {
- if (trenutniIndeks < brOkvira) {
- sveStranice[trenutniIndeks].okvir = zahtjev;
- sveStranice[trenutniIndeks].zastavica = 1;
- return trenutniIndeks++;
- }
- for (; sveStranice[pokazivac].zastavica != 0; pokazivac = (pokazivac + 1) % brOkvira) {
- sveStranice[pokazivac].zastavica = 0;
- }
- sveStranice[pokazivac].okvir = zahtjev;
- sveStranice[pokazivac].zastavica = 1;
- return pokazivac;
- }
- int pisiStatus(int zahtjev, int indeks, Tip tip, int brOkvira) {
- int i;
- printf("%d ", zahtjev);
- for (i = 0; i < brOkvira; i++) {
- if (indeks == i) {
- if (tip == UMETNUT) { printf(" [%d]", sveStranice[i].okvir); }
- else { printf(" (%d)", sveStranice[i].okvir); }
- } else { printf("%3d", sveStranice[i].okvir); }
- }
- printf("\n");
- }
- int main(int argc, char *argv[]) {
- int brOkvira = charUBroj(argv[1]);
- int brZahtjeva = charUBroj(argv[2]);
- int i, zahtjevi[ZAHTJEVI];
- int indeks;
- Tip tip;
- printf("Zahtjevi: ");
- for (i = 0; i < brZahtjeva; i++) {
- zahtjevi[i] = rand() % 8 + 1;
- printf("%3d", zahtjevi[i]);
- if (i + 1 < brZahtjeva) { printf(","); }
- }
- printf("\n");
- zaglavlje(brOkvira);
- for (i = 0; i < brZahtjeva; i++) {
- tip = (vratiIndeks(zahtjevi[i]) == -1) ? UMETNUT : POGODAK;
- indeks = umetni(zahtjevi[i], brOkvira);
- pisiStatus(zahtjevi[i], indeks, tip, brOkvira);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment