Технический форум

Технический форум (http://www.tehnari.ru/)
-   Форум программистов (http://www.tehnari.ru/f22/)
-   -   Объясните код (http://www.tehnari.ru/f22/t86927/)

hampdv 29.03.2013 03:14

Объясните код
 
#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[i][0] < arr[min_arr[0]][0])
min_arr[0] = i;

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

if (arr[i][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[i][j]);
}


for (i = 1; i < dy_m; i++)
{
for (j = 0; j < dy_n; j++)
if (dy_arr[i][j] < dy_arr[min_dy_arr[i]][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[i] = 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[i][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;
}


Часовой пояс GMT +4, время: 18:15.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.