Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как работает цикл? 
:(
    Опции темы
Andrei3423421
Дата 23.12.2017, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.11.2017

Репутация: нет
Всего: нет



как работает цикл почему min начинается 999999?

Код

for (i=0; i<m; i++)
{
min=999999;
max=0;
for (j=0; j<n; j++)
{
if (a[i][j]<min) {min=a[i][j]; l=j;}
if (a[i][j]>max) {max=a[i][j]; r=j;}
}
a[i][l] = max;
a[i][r] = min;
}



Код

#include <stdlib.h>
#include <time.h>
#include <stdio.h>

void main()
{
const long m=3, n=3;
long a[m][n], i, j, min, max, x, l, r;
srand(time(0));
//формируем и выводим матрицу
for (i=0; i<m; i++)
{
printf("\n\n");
for (j=0; j<n; j++)
{
a[i][j]=25+rand()%56;
printf("%d\t",a[i][j]);
}
}
//ищем min и max, меняем местами
for (i = 0; i < n; i++)

min = 0;
max = 0;
for (i=0; i<m; i++)
{
min=999999;
max=0;
for (j=0; j<n; j++)
{
if (a[i][j]<min) {min=a[i][j]; l=j;}
if (a[i][j]>max) {max=a[i][j]; r=j;}
}
a[i][l] = max;
a[i][r] = min;
}
printf("\n\n");
//выводим то что получилось
for (i=0; i<m; i++)
{
printf("\n\n");
for (j=0; j<n; j++)
{
printf("%d\t",a[i][j]);
}
}
printf("\n\n");
}

PM MAIL   Вверх
feodorv
Дата 25.12.2017, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(Andrei3423421 @  23.12.2017,  10:52 Найти цитируемый пост)
a[i][j]=25+rand()%56;

У Вас числа генерируются в диапазоне 25...80. Далее в каждом ряду матрицы Вы ищете минимальный и максимальный элементы, запоминаете их индексы, чтобы в дальнейшем эти элементы обменять местами.

Цитата(Andrei3423421 @  23.12.2017,  10:52 Найти цитируемый пост)
почему min начинается 999999?

min не начинается с 999999. Переменной min присваивается значение, заведомо большее любого другого, возможного в матрице. Это значение можно было выбрать как 100, 200, 1000000000, 0x7fffffff, MAX_INT, 81 и т.д. Любое из них больше 80, поэтому подойдёт для применяемого алгоритма. А в алгоритме затем a[i][j] сравнивается с min, и значение min будет только уменьшаться. И оно гарантировано будет уменьшено до реального значения со своего первоначального значения, поскольку число сравнений больше нуля (у Вас в коде - 3 штуки). Аналогично и с переменной max. Сначала она инициализируется заведомо меньшим значением, чем любое a[i][j]. Далее её значение может только расти до максимально в строке. Никакой магии.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1089 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.