Guest User

Untitled

a guest
Nov 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.54 KB | None | 0 0
  1. // lab4.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h" //Самая крутая либа О_о...
  5. #include "stdlib.h" //Либа для молока.
  6. #include "conio.h" //Либа для гетча.
  7. #include "locale.h" //Либа для поддержки кирилицы.
  8.  
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11.     /* Операции по мелочи. */
  12.     setlocale(LC_CTYPE,"Russian"); //Русский язык.
  13.     int i, j, n, m, **Array, count, start, finish, temp=0, sum=0, max_sum=0, add_count=0; //Переменные для работы.
  14.     float average, average_max; //Тоже переменные, тоже для работы.
  15.     printf("Введите количество магазинов: "); //Получаем кол-во магазинов (только получаем через scanf конечно же).
  16.     scanf("%d",&n);
  17.     printf("Введите количество месяцев: "); //Получаем кол-во месяцев, которые нужно будет считать.
  18.     scanf("%d",&m);
  19.     printf("\n"); //Прыгаем на новую строку.
  20.     /* Из полученных значений кол-ва магазинов и месяцев делаем 2D массив (можно без 3D очков с ним работать О_о...). */
  21.     Array=(int**) malloc(n*sizeof(int*));
  22.     for(i=0;i<n;i++) //Создаем массив.
  23.         Array[i]=(int*) malloc(m*sizeof(int)); //В каждом массиве создаем массив - получилась матрица...мы круты...
  24.     /* Загружаем матрицу... */
  25.     printf("Формат ввода: [x,y] где X-элемент, а Y-строка...\n");
  26.     for (i=0;i<n;i++) //По строкам.
  27.         for (j=0;j<m;j++) //И по столбцам.
  28.         {
  29.             printf("Введите элемент[%d,%d]: ",j+1,i+1); //КЭП ушёл в отставку: мы не знаем что мы тут делаем! =(
  30.             scanf("%d",&Array[i][j]); //Шучу. Мы по-элементно заполняем матрицу.
  31.         }
  32.     /* Выводим матрицу, чтобы показать юзеру что получилось в целом. */
  33.     printf("\n");
  34.     for(i=0;i<n;i++) //Переход по строкам.
  35.     {
  36.         for(j=0;j<m;j++) //Переход по столбцам.
  37.         {
  38.             printf("%d ",Array[i][j]); //Вывод в строку.
  39.         }
  40.         printf("\n"); //Переход на новую строку.
  41.     }
  42.     printf("\n"); //Любимый printf("\n"); =))
  43.     /* Приступим к вычислениям! Юху^^ */
  44.     printf("Введите с какого по какой месяц нужно посчитать среднюю выручку: \n");
  45.     printf("Начиная с: ");
  46.     scanf("%d",&start); //Переменная start задает начальный месяц периода.
  47.     printf("Заканчивая: ");
  48.     scanf("%d",&finish); //А finish - конечный.
  49.     printf("\n"); //Опять printf("\n"); =))
  50.     /* Из переменных, задающих начало и конец периода, вычитаем еденичку
  51.     ибо массив начинается с нуля, а юзер и не думает об этом. */
  52.     start-=1, finish-=1;
  53.     count=(finish-start)+1; //Кол-во месяцев в заданном периоде.
  54.     printf("\nСтатистика за %d месяца.",count);
  55.     printf("\n");
  56.     for (i=0;i<n;i++) //Перебираем по строкам.
  57.     {
  58.         for (j=start;j<=finish;j++) //И по столбцам.
  59.             sum+=Array[i][j]; //Считаем сумму выручки за заданный период.
  60.         if (max_sum<sum) //И ищем самый прибыльный магазин.
  61.         {
  62.             max_sum=sum;
  63.             add_count=i;
  64.         }
  65.         printf("Выручка магазина #%d = %d\n",i+1,sum); //Показываем прибыль каждого магазина.
  66.         average=(float)sum/count; //Вычисляем среднюю прибыль за выбраный период.
  67.         printf("Средняя выручка за месяц = %.2f\n",average); //И показываем её.
  68.         sum=0;
  69.     }
  70.     printf("\nСамый прибильный магазин #%d - его выручка = %d",add_count+1,max_sum); //Показываем самый прибыльный магазин и его выручку.
  71.     free(Array); //Чистим память от динамического массива.
  72.     getch(); //Тормозим консольку.
  73.     return 0;
  74. }
  75. /* Лаба в 75 строк (Эта строка 75-ая). */
Add Comment
Please, Sign In to add comment