Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 29.03.2013, 03:14   #1 (permalink)
hampdv
Новичок
 
Регистрация: 29.03.2013
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Объясните код

#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;
}
hampdv вне форума   Ответить с цитированием

Старый 29.03.2013, 03:14
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Однородные проблемы уже обсуждались, пожалуйста, обратите на них внимание

Объясните новичку
Объясните цену
Объясните разницу

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.