• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Объясните код

  • Автор темы Автор темы hampdv
  • Дата начала Дата начала

hampdv

Ученик
Регистрация
29 Мар 2013
Сообщения
1
Реакции
0
Баллы
0
Объясните код

#include <stdio.h>
#include <conio.h>

#define ST_M 5 //директива #define определяет идентификатор и последовательность символов, которая будет подставляться вместо идентификатора каждый раз, когда он встретится в исходном файле.
#define ST_N 3

void check_static_arr(float arr[ST_M][ST_N], int min_arr[ST_N])
{
int i;

for (i = 1; i < 5; i++)
{
if (arr[0] < arr[min_arr[0]][0])
min_arr[0] = i;

if (arr[1] < arr[min_arr[1]][1])
min_arr[1] = i;

if (arr[2] < arr[min_arr[2]][2])
min_arr[2] = i;
}
}


void check_dynamic_arr(float **dy_arr, int *min_dy_arr, int dy_m, int dy_n)
{
int i, j;


for (i = 0; i < dy_m; i++) {
printf("\n");
for (j = 0; j < dy_n; j++)
printf("| %2.f |", dy_arr[j]);
}


for (i = 1; i < dy_m; i++)
{
for (j = 0; j < dy_n; j++)
if (dy_arr[j] < dy_arr[min_dy_arr][j])
min_dy_arr[j] = i;
}
}

int main()
{
// Static
float arr[ST_M][ST_N] = {2.2, 1.4, 3.5,
3.3, 1.2, 2.3,
1.8, 2.1, 3.4,
-0.6, 1.9, 3.2,
0.4, 1.8, 1.7};

int min_arr[ST_N] = {0, 0, 0};

check_static_arr(arr, min_arr);

printf("Min of thirst col: %0.1lf (index: [%d][0]) \n", arr[min_arr[0]][0], min_arr[0]);
printf("Min of second col: %0.1lf (index: [%d][1]) \n", arr[min_arr[1]][1], min_arr[1]);
printf("Min of third col: %0.1lf (index: [%d][2]) \n", arr[min_arr[2]][2], min_arr[2]);

// Dynamic
int dy_m, dy_n, i, j;
float **dy_arr;
int *min_dy_arr;

printf("\n\nInsert M x N for dynamic row\n");
scanf("%d%d", &dy_m, &dy_n);

min_dy_arr = malloc(dy_n * sizeof(int));
for (j = 0; j < dy_n; j++)
min_dy_arr[j] = 0;

dy_arr = malloc(dy_m * sizeof(float));
for (i = 0; i < dy_m; i++)
dy_arr = malloc(dy_n * sizeof(float));

printf("\n");
for (i = 0; i < dy_m; i++)
for (j = 0; j < dy_n; j++)
scanf("%f", &dy_arr[j]);

check_dynamic_arr(dy_arr, min_dy_arr, dy_m, dy_n);

printf("\n");
for (j = 0; j < dy_n; j++)
printf("Min of %d col: %0.1lf (index: [%d][%d]) \n",
(j + 1), dy_arr[min_dy_arr[j]][j], min_dy_arr[j], j);

// Post scriptum
getch();
return 0;
}
 
Назад
Сверху