Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdlib.h"
- #include "stdio.h"
- #include "string.h"
- #define MAX_SIZE 20
- struct paket_st{
- char zemlja[MAX_SIZE];
- char operater[MAX_SIZE];
- unsigned pretplata;
- unsigned KWh_pretplata;
- double cena_KWh;
- };
- struct cena_st{
- double uku_cena;
- char zemlja[MAX_SIZE];
- char operater[MAX_SIZE];
- };
- FILE *safe_fopen(char filename[], char model[], int error_code);
- int unos(FILE *in,struct paket_st paket[]);
- double ukupna_cena(struct paket_st paket, int KW);
- void transform(struct paket_st paket[], struct cena_st cena[], int n, int KW);
- void izlaz(FILE *out, struct cena_st cena[],int n);
- int main(int argv, char **args){
- if(argv!=4){
- printf("Wrong input!");
- }
- struct paket_st paket[MAX_SIZE];
- struct cena_st cena[MAX_SIZE];
- char *in_c=args[2];
- char *out_f=args[3];
- FILE *in=safe_fopen(in_c,"r",2);
- FILE *out=safe_fopen(out_f,"w",3);
- int n=unos(in,paket);
- int KW=atoi(args[1]);
- transform(paket,cena,n,KW);
- izlaz(out,cena,n);
- fclose(out);
- fclose(in);
- return 0;
- }
- FILE *safe_fopen(char filename[], char model[], int error_code){
- FILE *fp=fopen(filename,model);
- if(fp ==NULL){
- printf("Cant open file %s",filename);
- exit(error_code);
- }
- return fp;
- }
- int unos(FILE *in,struct paket_st paket[]){
- int n=0;
- while (fscanf(in," %s %s %u %u %lf",
- paket[n].zemlja,
- paket[n].operater,
- &paket[n].pretplata,
- &paket[n].KWh_pretplata,
- &paket[n].cena_KWh)){
- n++;
- }
- return n;
- }
- double ukupna_cena(struct paket_st paket, int KW){
- double base = paket.pretplata;
- int extra_kwh= KW -paket.KWh_pretplata;
- if(extra_kwh>0){
- base+=extra_kwh*paket.cena_KWh;
- }
- return base;
- }
- void transform(struct paket_st paket[], struct cena_st cena[], int n, int KW){
- for (int i = 0; i <n ; i++) {
- cena[i].uku_cena=(float)ukupna_cena(*paket,KW);
- strcpy(cena[i].zemlja,paket[i].zemlja);
- strcpy(cena[i].operater,paket[i].operater);
- }
- }
- void izlaz(FILE *out, struct cena_st cena[], int n){
- for (int i = 0; i <n ; i++) {
- fprintf(out,"%f %s %s",
- cena[i].uku_cena,
- cena[i].zemlja,
- cena[i].operater);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement