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

Указатели, массивы. Не могу разобраться - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оптимизация алгоритмов http://www.cyberforum.ru/cpp-beginners/thread61881.html
Привет всем). Есть задача: "Дана целочисленная прямоугольная матрица. Определить номера строк и столбцов всех седловых точек". Я решил эту задачу таким способом: 1) нахожу минимальный элемент в...
C++ Одномерный массив! Дан одномерный массив из 1000 элементов, состоящий из случайных целых чисел в диапазоне от 0 до 50. Найти сумму элементов массива, с начала массива, до первого элемента равного нулю. http://www.cyberforum.ru/cpp-beginners/thread61873.html
Удалить минимальный и максимальный элементы массива C++
новичек исщет решение вот две задачки помогите . 1.Ввести одномерный статический массив из k чисел.Удалить минимальный и максимальный элементы массива. 2.Ввести матрицу размером NxM. Память для...
функции,поправьте код пожалуста. C++
Задание : описать функцию Repl(A,B), меняющую местами максимальные элементы матриц А и В произвольного порядка. Считать, что в каждой матрице только один элемент. Я написал код для определенных...
C++ Вывести все элементы числового массива на экран http://www.cyberforum.ru/cpp-beginners/thread61844.html
Всем доброго времени суток, у меня вопрос - как вывести все элементы числового массива на экран, Массивы только что начал изучать - так что не судите строго :) #include <iostream> using...
C++ Перевод угла из радиан в градусы, минуты и секунды Всем доброго времени суток, тут написал программу, которая переводит значение угла, заданное в радианах в градусы с десятичной дробной частью, но мне необходимо чтобы программа переводила радианы в... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.11.2009, 20:47
C
1
Cr=Ar;
присваиваем указателю Cr адрес начала массива (точнее 1-го элемента)

C
1
2
3
for (i=size-1; i>=0 && min0==-1; i--)
        if(*(Cr+i)>=0)
                min0=i;
в этой части кода, начиная с права, ищем первое неотрицательное число (отрицательные если есть справой стороны, то они уже стоят на своем месте) и записываем номер индекса в переменную min0

C
1
2
3
4
5
6
7
8
9
10
for (i=0; i<min0; i++)
                if(*(Cr+i)<0)
                {
                        temp = *(Cr+min0);
                        *(Cr+min0)=*(Cr+i);
                        *(Cr+i)=temp;
                        min0--;
                        while(*(Cr+min0)<0)
                                min0--;
                }
здесь перебираем, начиная с лева, все числа попорядку, если нашли отрицательное, то меняем его местами с элементом, индекс которого записан в min0, после каждого обмена min0 уменьшаем на единицу (и сразу же проверяем не является ли этот элемент отрицательным, если да то еще уменьшаем min0 до тех пор пока не элемент с индексом min0 не будет 0 или положительным)

f
C
1
2
3
or (i=0; i<size && max0==-1; i++)
        if(*(Cr+i)<=0)
                max0=i;
начиная с лева, ищем первое не положительное число (положительные если есть с левой стороны, то они уже стоят на своем месте) и записываем номер индекса в переменную max0


C
1
2
3
4
5
6
7
8
9
10
for (i=size-1; i>max0; i--)
                if(*(Cr+i)>0)
                {
                        temp = *(Cr+max0);
                        *(Cr+max0)=*(Cr+i);
                        *(Cr+i)=temp;
                        max0++;
                        while(*(Cr+max0)>0)
                                max0++;
                }
аналогично как и для отрицательных чисел
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru