Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Найти min и max матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу вывода на экран наибольшего из трех введенных с клавиатуры чисел http://www.cyberforum.ru/cpp-beginners/thread51230.html
я не знаю с++ а тут сказали лаб делать помогите вроде задачи легкие 1 Составить программу для вычисления разницу двух чисел, определяемых в теле программе. 2 Составить программу вывода на...
C++ Unit,Header,Imp Здравствуйте! main.cpp //#include "unit1.h" //#include "unit2.h" #include "unit3.h" int main() { return 0; } unit1.h http://www.cyberforum.ru/cpp-beginners/thread51229.html
Почему встроенная функция вызывает конструктор копирования? C++
Почему встроенная функция вызывает конструктор копирования или всегда ли встроенная функция действительно встроеннаая? Но всё по порядку. Друзья! У меня написано в книге, что если объявлен класс ...
C++ Зачем генерировать код программы написанный на С++ в UML??????
Зачем генерировать код программы написанный на С++ в UML
C++ Вычисление суммы ряда. http://www.cyberforum.ru/cpp-beginners/thread51182.html
Помогите, пожалйста!!! Вычислить сумму бесконечного ряда Y=(fabs)ak, где а=-0,1(аk-1+аk+1) при k=2,3,4... Вычисления окончить при |ak|<Eps. a1=2, a2=5, Eps=0,001 Заранее ОГРОМНЕЙШЕЕ спасибо!!!
C++ Компилятор для C Компилятор для C под XP. Какой посоветуете? Нужен для обучения. Microsoft Quick C - хороший? подробнее

Показать сообщение отдельно
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
17.09.2009, 13:52
Цитата Сообщение от GAV_13 Посмотреть сообщение
А чем плохо? сравнение происходит, присвоения - нет) В твоем варианте - на первой итерации ты уже присваиваешь) +1 операция.
А вот почему:
C++
1
2
3
4
5
6
7
8
9
10
        int matr[n][n], i, j, min(INT_MAX), max(INT_MIN);//два присвоения
        /* код */
        for (i = 0; i < n; ++i)//идет полная проверка
                for(j = 0; j < n; ++j)
                {
                        if(matr[i][j] > max)
                                max = matr[i][j];
                        if(matr[i][j] < min)
                                min = matr[i][j];
                }
C++
1
2
3
4
5
6
7
8
9
10
11
12
        int matr[n][n], i, j;
        /* код */
        min=a[0][0];//по количеству присвоений
        max=a[0][0];//сравнялись, здесь тоже два
        for (i = 0; i < n; ++i)//идет полная проверка
                for(j = 0; j < n; ++j)
                {
                        if(matr[i][j] > max)
                                max = matr[i][j];
                        if(matr[i][j] < min)
                                min = matr[i][j];
                }
Я не сказал, что плохо! Да и количество операций одинаково. Но суть присвоения первого элемента в том, чтоб меньше проходить элементов! В одномерном массиве индексация начиналась бы не с 0, а с 1 и экономился бы один проход цикла. А здесь первый проход впустую, поэтому я так и сказал, чтобы это сравнение не было пустым и не было так обидно
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru