Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <ctype.h>
  6. #include <time.h>
  7.  
  8. int j[100],x,y;
  9.  
  10. enum weather_type {SOL, MOLN, REGN, DIMMA};
  11. char* string[] = {"Sol", "Moln", "Regn", "Dimma"};
  12.  
  13. void getNum()
  14. {
  15. char *token;
  16. char help[256];
  17. FILE *InputFile;
  18. InputFile = fopen("weather_per.txt", "r");
  19.  
  20. if(InputFile == NULL){
  21. printf("Error Reading File\n");
  22. exit (0);
  23. }
  24. fscanf(InputFile, "%s", help);
  25. token = strtok(help, ",");
  26. y = 0;
  27. while(token != NULL)
  28. {
  29. j[y] = atoi(token);
  30. token = strtok(NULL, ",");
  31. y++;
  32. }
  33. x = y;
  34. }
  35. void printNum()
  36. {
  37. for(y=0; y < x; y++)
  38. {
  39. printf(" %d ", j[y]);
  40. }
  41. }
  42.  
  43. void getChar()
  44. {
  45. FILE *InputFile2;
  46. char a;
  47. InputFile2 = fopen("weather.txt", "r");
  48.  
  49. if(InputFile2 == NULL)
  50. {
  51. printf("Error Reading File\n");
  52. exit (0);
  53. }
  54. // printf("\n");
  55. // do {
  56. // a = fgetc(InputFile2);
  57. // putchar(a);
  58. // } while(a != EOF);
  59. // fclose(InputFile2);
  60. }
  61.  
  62. void print_text(int z,int sol_total, int moln_total, int regn_total, int dimma_total)
  63. {
  64. printf("Laser sannolikheterna fran 'weather_per.txt'...klart.\n");
  65. printf("Startar vadret ar: soligt.\n");
  66. printf("Skriver resultaten till 'weather_runs.txt'...klart.\n");
  67. printf("Resultatet efter %d iterationer\n",z);
  68. printf("Sol: %d%% Moln: %d%% Regn: %d%% Dimma: %d%%\n", sol_total, moln_total, regn_total, dimma_total);
  69. }
  70.  
  71. int random_number_gen()
  72. {
  73. int random_number = (rand() % 100) +1;
  74. return random_number;
  75. }
  76.  
  77. enum weather_type choosing_weather(enum weather_type current,int random_number,int j[])
  78. {
  79. if(current = SOL)
  80. {
  81. if(random_number < j[0])
  82. {
  83. return SOL;
  84. }
  85. else if((random_number >= j[0]) && (random_number < j[0]+j[1]))
  86. {
  87. return MOLN;
  88. }
  89. else if((random_number >= j[0]+j[1]) && (random_number < j[0]+j[1]+j[2]))
  90. {
  91. return REGN;
  92. }
  93. else if(random_number >= j[0]+j[1]+j[2])
  94. {
  95. return DIMMA;
  96. }
  97. }
  98.  
  99. if(current = MOLN)
  100. {
  101. if(random_number < j[4])
  102. {
  103. return SOL;
  104. }
  105. else if((random_number >= j[4]) && (random_number < j[4]+j[5]))
  106. {
  107. return MOLN;
  108. }
  109. else if((random_number >= j[4]+j[5]) && (random_number < j[4]+j[5]+j[6]))
  110. {
  111. return REGN;
  112. }
  113. else if(random_number >= j[4]+j[5]+j[6])
  114. {
  115. return DIMMA;
  116. }
  117. }
  118.  
  119. if(current = REGN)
  120. {
  121. if(random_number < j[8])
  122. {
  123. return SOL;
  124. }
  125. else if((random_number >= j[8]) && (random_number < j[8]+j[9]))
  126. {
  127. return MOLN;
  128. }
  129. else if((random_number >= j[8]+j[9]) && (random_number < j[8]+j[9]+j[10]))
  130. {
  131. return REGN;
  132. }
  133. else if(random_number >= j[8]+j[9]+j[10])
  134. {
  135. return DIMMA;
  136. }
  137. }
  138.  
  139. if(current = DIMMA)
  140. {
  141. if(random_number < j[12])
  142. {
  143. return SOL;
  144. }
  145. else if((random_number >= j[12]) && (random_number < j[12]+j[13]))
  146. {
  147. return MOLN;
  148. }
  149. else if((random_number >= j[12]+j[13]) && (random_number < j[12]+j[13]+j[14]))
  150. {
  151. return REGN;
  152. }
  153. else if(random_number >= j[12]+j[13]+j[14])
  154. {
  155. return DIMMA;
  156. }
  157. }
  158. }
  159.  
  160. int main (void)
  161. {
  162. srand(time(NULL));
  163. enum weather_type w = SOL;
  164. getNum();
  165. getChar();
  166. int z,sunny = 0,cloudy = 0,foggy = 0,rainy = 0,sol_total,regn_total,moln_total,dimma_total;
  167. printf("Hur manga itterationer?");
  168. scanf("%d",&z);
  169. int r = z;
  170. for(int q = 0; q != z; q++)
  171. {
  172. int random_number = random_number_gen();
  173. w = choosing_weather(w,random_number,j);
  174. if(w = SOL)
  175. {
  176. sunny++;
  177. }
  178. else if(w = MOLN)
  179. {
  180. cloudy++;
  181. }
  182. else if(w = REGN)
  183. {
  184. rainy++;
  185. }
  186. else if(w = DIMMA)
  187. {
  188. foggy++;
  189. }
  190. }
  191.  
  192. sol_total = (sunny / r);
  193. moln_total = (cloudy / r);
  194. regn_total = (rainy / r);
  195. dimma_total = (foggy / r);
  196. //printf("%d %d %d %d",sol_total, moln_total, regn_total, dimma_total);
  197. print_text(r,sol_total,moln_total,regn_total,dimma_total);
  198. return 0;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement