Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DATOTEKE
- neka postoji
- primer.txt
- 10 // ovo stoji u fajlu i oznacava koliko ce dalje biti brojeva
- 7 13 17 11
- Trazi se:
- prosjek
- najveci
- najmanji
- U PROGRAMU
- FILE *f;
- f=fopen("primer.txt","r"); // otvaranje primer.txt a r znaci read
- if (f==NULL)
- {
- printf("Datoteka primer.txt nije otvorena\n");
- exit(1);
- }
- fscanf(f,"%d%d", &a, &b);
- primjer ovoga gore
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- FILE *f; // ovo pravi pokayivac na tip FILE
- int n, i, x, s, min, max;
- f = fopen("primer.txt","r"); // otvaranje primer.txt a r znaci read
- if (f == NULL)
- {
- printf("Datoteka primer.txt nije otvorena\n");
- exit(1);
- }
- s = 0;
- fscanf(f, "%d", &n);
- for (i = 1; i <= n ; i++)
- {
- fscanf(f, "%d", &x);
- s += x;
- if(i == 1)
- min = max = x;
- else
- {
- if (x < min)
- min = x;
- if (x > max)
- max = x;
- }
- }
- printf("Min = %d\n", min);
- printf("Max = %d\n", max);
- printf("Prosek = %lf\n", (double)s/n);
- fclose(f);
- return 0;
- }
- postoji primer2.txt u kome su zapisani parovi brojeva i treba za svaki par da napise najveci zajednicki djelilac
- 12 16 -- 4
- 15 40 -- 5
- 16 56 -- 8
- 13 18 -- 1
- #include <stdio.h>
- #include <stdlib.h>
- int nzd(int a, int b)
- {
- int c;
- if (a < 0)
- a = -a;
- if (b < 0)
- b = -b;
- if (b == 0)
- return a;
- if (a == 0)
- return b;
- if (a < b)
- c = a;
- else
- c = b;
- while ((a % c != 0 ) || (b % c != 0 )) c--;
- return c;
- }
- int main()
- {
- FILE *f; // ovo pravi pokazivac na tip FILE
- int x, y, d;
- f = fopen("primer2.txt","r"); // otvaranje primer2.txt a r znaci read
- if (f == NULL)
- {
- printf("Datoteka primer.txt nije otvorena\n");
- exit(1);
- }
- while (1)
- {
- if (fscanf(f, "%d%d", &x, &y) < 2) // koristi se fscanf da bi citalo iz datoteke f sto smo gore naveli koja je. ovo vraca broj koliko
- break; // smo procitali podataka
- d = nzd(x, y);
- printf("%d %d %d\n", x, y, d);
- }
- fclose(f);
- return 0;
- }
- EUKLIDOV ALGORITAM
- nzd(A,B) = A; ako je B = 0
- = nzd (B, A%B); ako je B != 0
- #include <stdio.h>
- #include <stdlib.h>
- int nzde(int a, int b) // euklidov algoritam
- {
- int c;
- while (b != 0)
- {
- c = a % b;
- a = b;
- b = c;
- }
- return a;
- }
- int main()
- {
- FILE *f; // ovo pravi pokazivac na tip FILE
- int x, y, d;
- f = fopen("primer2.txt","r"); // otvaranje primer2.txt a r znaci read
- if (f == NULL)
- {
- printf("Datoteka primer.txt nije otvorena\n");
- exit(1);
- }
- while (1)
- {
- if (fscanf(f, "%d%d", &x, &y) < 2) // koristi se fscanf da bi citalo iz datoteke f sto smo gore naveli koja je. ovo vraca broj koliko
- break; // smo procitali podataka
- d = nzde(x, y);
- printf("%d %d %d\n", x, y, d);
- }
- fclose(f);
- return 0;
- }
- ARGUMENTI F-JE MAIN
- main (int argc, char *argv[]) // argc je argument count br argumenata, a *argv[] je niz pokazivaca
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- int k;
- printf("argc = %d\n", argc);
- for (k = 0; k < argc; k++)
- printf("%s\n", argv[k]);
- }
- argv[k] // adresa memorijske lokacije na kojoj pocinje argv[k]
- "123" treba da se pretvori u 123 posto je "123" string
- atoi // ascii to integer
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- int k, s;
- printf("argc = %d\n", argc);
- s = 0;
- for (k = 1; k < argc; k++)
- {
- printf("%s\n", argv[k]);
- s += atoi (argv[k]);
- }
- printf("s = %d\n", s);
- }
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- int x;
- FILE *f1, *f2, *f3;
- if (argc != 4)
- {
- printf("Neispravan poziv!\n");
- printf("Ispravan poziv : naziv ulazdat izlazdat1 izlazdat2\n ");
- exit(1);
- }
- f1 = fopen(argv[1], "r");
- if (f1 == NULL)
- {
- printf("Datoteka %s ne postoji\n", argv[1]);
- exit(2);
- }
- f2 = fopen(argv[2], "w");
- f3 = fopen(argv[3], "w");
- while (1)
- {
- if (fscanf(f1, "%d", &x) < 1)
- break;
- if (x % 2 == 0)
- fprintf(f2, "%d\n", x);
- else
- fprintf(f3, "%d\n", x);
- }
- fclose(f1);
- fclose(f2);
- fclose(f3);
- }
- na trecem testu nizovi pokazivaci funkcije datoteke
- STRUKTURE
- #include <stdio.h>
- #include <stdlib.h>
- struct datum
- {
- int dan, mesec, godina;
- };
- struct vreme
- {
- int sat;
- int minut;
- int sekund;
- };
- main()
- {
- struct datum d1, d2; // d1 i d2 su promijenjljive tipa datum tj dobijaju po 3 polja dan, mesec, godina
- scanf("%d%d%d", &d1.dan, &d1.mesec, &d1.godina);
- d1.dan--;
- if (d1.dan == 0)
- {
- d1.mesec--;
- if (d1.mesec == 0)
- {
- d1.mesec = 12;
- d1.dan = 31;
- d1.godina--;
- }
- else
- {
- switch (d1.mesec)
- {
- case 1: case 3: case 5: case 7: case 8: case 10:
- d1.dan = 31;
- break;
- case 4: case 6: case 9: case 11:
- d1.dan = 30;
- break;
- case 2:
- if (d1.godina % 4 == 0)
- d1.dan = 29;
- else
- d1.dan = 28;
- }
- }
- }
- printf("%d/%d/%d\n",d1.dan, d1.mesec, d1.godina);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement