Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <math.h>
- #include <ctype.h>
- #include <time.h>
- int j[100],x,y;
- enum weather_type {SOL, MOLN, REGN, DIMMA};
- char* string[] = {"Sol", "Moln", "Regn", "Dimma"};
- void getNum()
- {
- char *token;
- char help[256];
- FILE *InputFile;
- InputFile = fopen("weather_per.txt", "r");
- if(InputFile == NULL){
- printf("Error Reading File\n");
- exit (0);
- }
- fscanf(InputFile, "%s", help);
- token = strtok(help, ",");
- y = 0;
- while(token != NULL)
- {
- j[y] = atoi(token);
- token = strtok(NULL, ",");
- y++;
- }
- x = y;
- }
- void printNum()
- {
- for(y=0; y < x; y++)
- {
- printf(" %d ", j[y]);
- }
- }
- void getChar()
- {
- FILE *InputFile2;
- char a;
- InputFile2 = fopen("weather.txt", "r");
- if(InputFile2 == NULL)
- {
- printf("Error Reading File\n");
- exit (0);
- }
- // printf("\n");
- // do {
- // a = fgetc(InputFile2);
- // putchar(a);
- // } while(a != EOF);
- // fclose(InputFile2);
- }
- void print_text(int z,int sol_total, int moln_total, int regn_total, int dimma_total)
- {
- printf("Laser sannolikheterna fran 'weather_per.txt'...klart.\n");
- printf("Startar vadret ar: soligt.\n");
- printf("Skriver resultaten till 'weather_runs.txt'...klart.\n");
- printf("Resultatet efter %d iterationer\n",z);
- printf("Sol: %d%% Moln: %d%% Regn: %d%% Dimma: %d%%\n", sol_total, moln_total, regn_total, dimma_total);
- }
- int random_number_gen()
- {
- int random_number = (rand() % 100) +1;
- return random_number;
- }
- enum weather_type choosing_weather(enum weather_type current,int random_number,int j[])
- {
- if(current = SOL)
- {
- if(random_number < j[0])
- {
- return SOL;
- }
- else if((random_number >= j[0]) && (random_number < j[0]+j[1]))
- {
- return MOLN;
- }
- else if((random_number >= j[0]+j[1]) && (random_number < j[0]+j[1]+j[2]))
- {
- return REGN;
- }
- else if(random_number >= j[0]+j[1]+j[2])
- {
- return DIMMA;
- }
- }
- if(current = MOLN)
- {
- if(random_number < j[4])
- {
- return SOL;
- }
- else if((random_number >= j[4]) && (random_number < j[4]+j[5]))
- {
- return MOLN;
- }
- else if((random_number >= j[4]+j[5]) && (random_number < j[4]+j[5]+j[6]))
- {
- return REGN;
- }
- else if(random_number >= j[4]+j[5]+j[6])
- {
- return DIMMA;
- }
- }
- if(current = REGN)
- {
- if(random_number < j[8])
- {
- return SOL;
- }
- else if((random_number >= j[8]) && (random_number < j[8]+j[9]))
- {
- return MOLN;
- }
- else if((random_number >= j[8]+j[9]) && (random_number < j[8]+j[9]+j[10]))
- {
- return REGN;
- }
- else if(random_number >= j[8]+j[9]+j[10])
- {
- return DIMMA;
- }
- }
- if(current = DIMMA)
- {
- if(random_number < j[12])
- {
- return SOL;
- }
- else if((random_number >= j[12]) && (random_number < j[12]+j[13]))
- {
- return MOLN;
- }
- else if((random_number >= j[12]+j[13]) && (random_number < j[12]+j[13]+j[14]))
- {
- return REGN;
- }
- else if(random_number >= j[12]+j[13]+j[14])
- {
- return DIMMA;
- }
- }
- }
- int main (void)
- {
- srand(time(NULL));
- enum weather_type w = SOL;
- getNum();
- getChar();
- int z,sunny = 0,cloudy = 0,foggy = 0,rainy = 0,sol_total,regn_total,moln_total,dimma_total;
- printf("Hur manga itterationer?");
- scanf("%d",&z);
- int r = z;
- for(int q = 0; q != z; q++)
- {
- int random_number = random_number_gen();
- w = choosing_weather(w,random_number,j);
- if(w = SOL)
- {
- sunny++;
- }
- else if(w = MOLN)
- {
- cloudy++;
- }
- else if(w = REGN)
- {
- rainy++;
- }
- else if(w = DIMMA)
- {
- foggy++;
- }
- }
- sol_total = (sunny / r);
- moln_total = (cloudy / r);
- regn_total = (rainy / r);
- dimma_total = (foggy / r);
- //printf("%d %d %d %d",sol_total, moln_total, regn_total, dimma_total);
- print_text(r,sol_total,moln_total,regn_total,dimma_total);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement