Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct elem {
- char ime[30];
- char email[30];
- char akcija;
- int vreme;
- struct elem *sled;
- }Elem;
- Elem* ucitaj(FILE *korisnici) {
- Elem *prvi = NULL, *pret = NULL, *novi;
- char name[30], mail[30];
- while (fscanf(korisnici, "%s%s", name, mail) != EOF) {
- novi = (Elem*)malloc(sizeof(Elem));
- if (novi == NULL) { printf("nedostatak memorije\n"); exit(1); }
- novi->sled = NULL;
- strcpy(novi->ime, name);
- strcpy(novi->email, mail);
- novi->akcija = 'F';
- novi->vreme = 0;
- if (!prvi) prvi = novi;
- else pret->sled = novi;
- pret = novi;
- }
- return prvi;
- }
- void obrada(Elem *prvi, FILE *log) {
- Elem *tek;
- char name[30], action;
- int time1;
- while (fscanf(log, "%s %c %d", name, &action, &time1) != EOF) {
- tek = prvi;
- while (tek) {
- if (!strcmp(tek->ime, name)) { tek->akcija = action; tek->vreme += time1; }
- tek = tek->sled;
- }
- }
- }
- void obrisi(Elem *prvi) {
- Elem *tek;
- while (prvi) {
- tek = prvi;
- prvi = prvi->sled;
- free(tek);
- }
- }
- int main() {
- FILE *log, *korisnici;
- log = fopen("log.txt", "r");
- Elem *prvi, *max, *tek;
- korisnici = fopen("korisnici.txt", "r");
- prvi = ucitaj(korisnici);
- obrada(prvi, log);
- max = prvi;
- tek = prvi->sled;
- while (tek) {
- if (tek->vreme > max->vreme) max = tek;
- tek = tek->sled;
- }
- tek = prvi;
- while (tek) {
- if (tek->vreme == max->vreme) printf("%s", tek->email);
- tek = tek->sled;
- }
- int i;
- scanf("%d", &i);
- obrisi(prvi);
- fclose(log);
- fclose(korisnici);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement