Advertisement
napalm30

Untitled

Mar 25th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. int temperature[7];//вводим переменную массива температур за 7 дней
  5. int i=0,g=0,k=0;//вводим индексы
  6.  
  7. void header()//будет выводить на экран задачу программы
  8. {puts("Эта программа позволит вам ввести температуру воздуха за 7 дней,найти \nнаибольшую и наименьшую; найти день, когда температура достигла");
  9. puts("почти средней, отсортировать их по убыванию и вывести\nдни, когда температура находится в введеном вами диапазоне.");
  10. puts("\nВАЖНО!Старайтесь вводить только целые числа,дабы программа работала корректно.");
  11. }
  12.  
  13. void choice()//будет выводить меню пользователя
  14. {printf("\n\n _____________________________________________________________________\n| Что вы хотите сделать? |");
  15. printf("\n| 0-Найти наибольшую и наименьшую температуру |\n| 1-Найти день,когда температура была почти средней |");
  16. printf("\n| 2-Отсортировать по убыванию температуры |\n| 3-Вывести дни,когда температура находится в введенном вами диапазоне|");
  17. printf("\n| 4-Закрыть программу |\n");
  18. printf(" _____________________________________________________________________");
  19. printf("\n\nВаш выбор: ");
  20. }
  21.  
  22. int input_output()//даст пользователю ввести массив температур и вывести его на экран
  23. {for(i=0;i<7;i++)
  24. {printf("\nВведите температуру за %d-й день: ", i+1);
  25. scanf("%d",&temperature[i]);
  26. }system("cls");
  27. header();
  28. printf("\n\nДень Температура\n");
  29. for(i=0;i<7;i++)
  30. printf("\n %d %d",i+1,temperature[i]);
  31. }
  32.  
  33. int main()
  34. {int answer;
  35. setlocale(LC_ALL, "rus");
  36. header();
  37. input_output();
  38. while(answer!=4)//будем просить пользователя сделать выбор, пока он не нажмет 4(выходиз программы)
  39. {choice();
  40. scanf("%d",&answer);
  41. switch(answer)
  42. {case 0: lookformin(); lookformax(); break;
  43. case 1: averageday(); break;
  44. case 2: sort(); break;
  45. case 3: spectrum(); break;
  46. case 4: return 0; break;
  47. default: printf("\nВы ввели неверный символ.");
  48. }
  49. }
  50. return 0;
  51. }
  52.  
  53. int lookformin()//функция ищет минимальное значение
  54. {int min=temperature[0];
  55. for(i=1;i<7;i++)
  56. if(min>temperature[i])
  57. {min=temperature[i];
  58. g=i;
  59. }
  60. printf("\n\nСамая низкая температура недели была в %d-й день: %d гр.", g+1, min);
  61. }
  62.  
  63. int lookformax()//функция ищет максимальное значение
  64. {int max=temperature[0];
  65. for(i=1;i<7;i++)
  66. if(max<temperature[i])
  67. {max=temperature[i];
  68. k=i;
  69. }
  70. printf("\nСамая высокая температура недели была в %d-й день: %d гр.", k+1, max);
  71. }
  72.  
  73. int averageday()//функция ищет среднюю температуру и день,когда температура была наиболее приближённой к ней
  74. {int sum=0;
  75. float average=0;
  76. for(i=0;i<7;i++)
  77. sum+=temperature[i];
  78. average=(float)sum/7;
  79. printf("\n\nСредняя температура за неделю = %5.2f гр.\n", average);
  80. float minus_mass[6];//массив, в который будут заноситься разницы между средней температурой и температурой дня
  81. float nearest_day;
  82. int day;
  83. for(i=0;i<7;i++)
  84. minus_mass[i]=abs(average-(float)temperature[i]);
  85. nearest_day=minus_mass[0];
  86. for(i=1;i<7;i++)
  87. if(nearest_day>minus_mass[i])
  88. {nearest_day=minus_mass[i];
  89. day=i;
  90. }
  91. printf("\nДень, когда температура наиболее близка к средней - %d-й.", day+1);
  92. }
  93.  
  94. int sort()//функция сортировки массива по убыванию
  95. {int tmp, sorted_temperature[7],j,num_mass[7];
  96. for(i=0; i<7; i++)
  97. sorted_temperature[i]=temperature[i];
  98. for(j=0;j<7;j++)
  99. for(i=0; i<6; i++)
  100. if(sorted_temperature[i]<sorted_temperature[i+1])
  101. {tmp=sorted_temperature[i];
  102. sorted_temperature[i]=sorted_temperature[i+1];
  103. sorted_temperature[i+1]=tmp;
  104. }
  105. printf("\n\nОтсортированная температура по убыванию:\n");
  106. for(i=0;i<7;i++)
  107. printf("\n %d", sorted_temperature[i]);
  108. }
  109.  
  110. int spectrum()//функция, помогающая находить дни,когда температура попала введённый диапазон
  111. {float a,b;
  112. printf("\nВведите начало диапазона: ");
  113. scanf("%f",&a);
  114. printf("\nВведите конец диапазона: ");
  115. scanf("%f",&b);
  116. printf("\nДни, в которые температура попала в ваш диапазон:");
  117. for(i=0;i<7;i++)
  118. if(temperature[i]>=a && temperature[i]<=b)
  119. printf(" %d день ",i+1);
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement