Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MARKA_LEN (20 + 1)
- #define MAX_EL 30
- typedef struct M{
- char marka[MARKA_LEN];
- unsigned int kubikaza;
- unsigned int godist;
- } MARKA;
- FILE* otvoriti(char*, char*);
- int ucitaj_st(FILE*,MARKA*);
- int najnoviji(MARKA*,int,int);
- void ispis(MARKA, int);
- void main(int argc, char **argv){
- FILE *auti;
- MARKA m[MAX_EL];
- int n;
- auti = otvoriti(argv[1],"r");
- n = ucitaj_st(auti,m);
- fclose(auti);
- n = najnoviji(m,atoi(argv[2]),n);
- ispis(m[n],atoi(argv[2]));
- }
- FILE* otvoriti(char* naziv, char* mode){
- FILE *f = fopen(naziv,mode);
- if(f == NULL){
- printf("Nije moguce otvoriti datoteku %s.",naziv);
- exit(EXIT_FAILURE);
- }
- return f;
- }
- int ucitaj_st(FILE* stream, MARKA* m){
- int n = 0;
- while(fscanf(stream,"%s %u %u",
- m[n].marka,
- &(m[n].kubikaza),
- &(m[n].godist)) != EOF){
- n++;
- }
- return n;
- }
- int najnoviji(MARKA* m,int kubikaza, int n){
- int naj = 0,
- i;
- for(i = 0; i < n; i++){
- if((m[i].godist > m[naj].godist) && m[i].kubikaza <= kubikaza){
- naj = i;
- }
- }
- return naj;
- }
- void ispis(MARKA m,int kubikaza){
- char naziv[32];
- strcpy(naziv,strcat(m.marka,".txt"));
- FILE *ispis = otvoriti(naziv,"w");
- if(m.kubikaza <= kubikaza){
- fprintf(ispis,"%s %u %u",m.marka,m.kubikaza,m.godist);
- }
- fclose(ispis);
- }
Advertisement
Add Comment
Please, Sign In to add comment