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

Не знаю, как работать с элементамми массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделить последнее слово из введенной строки http://www.cyberforum.ru/cpp-beginners/thread518814.html
написать программу выделения последнего слова из введенной строки и отображение его на экране
C++ Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать этот с указателями ??? я делаю вот так но не работает, делал... http://www.cyberforum.ru/cpp-beginners/thread518803.html
Не работает isdigit как задумано C++
int main() { setlocale(LC_ALL,"Russian" ); cout<<"Введите размерность массива="; int n;//размерность масива char nom_mas; cin>>n; nom_mas=n; if(isdigit(nom_mas))...
C++ Задача из ЕГЭ
Есть след. задача(см.текст) Вот как я её решал: #include<iostream> #include<string.h> using namespace std; const int M=100; struct Trains { char Station;//станция char times;//время };
C++ кодирование хаффмана http://www.cyberforum.ru/cpp-beginners/thread518759.html
здравствуйте! я пишу программу сжатия jpeg. написала код для кодирования хаффмана по дереву. и столкнулась с такой проблемой записываю в файл jpeg в маркер ffc4 количество длин кодов и кодируемые...
C++ Ход конем На шахматной доске (8х8) стоят конь и пешка. Конь располагается на поле А, пешка - на поле B. Найти минимальное количество ходов, за которые конь доберется до пешки, если последняя стоит на месте.... подробнее

Показать сообщение отдельно
Stas0n
3 / 4 / 0
Регистрация: 13.07.2011
Сообщений: 313

Не знаю, как работать с элементамми массива - C++

14.03.2012, 18:32. Просмотров 291. Ответов 0
Метки (Все метки)

Еужно провести кое-какие преобразования с элементами вектора.

Для начала нужно считать ненулевые элементы матрицы в вектор values типа double, создать еще один coord вектор, стоящий из чисел, построенных по правилу:
i + (j-1)*n , где i - номер строки, j - номер столбца, n - порядок матрицы
теперь нужно разделить все элементы строки на диагональный элемент, стоящий в данной строке, т.е.
если матрица такая
10 1 1
2 10 1
2 2 10
то надо перейти вот к такой матрице:
1 0.1 0.1
0.2 10 0.1
0.2 0.2 1

values = {10, 1, 1, 0, 2, 10, 1, 0, 2, 2, 10}
coord = {1, 4, 7, 0, 2, 5, 8, 0, 3, 6, 9, 0}
для простоты - отделяю элементы одной строки от элементов другйо строки нулями (все-равно я считываю лишь ненулевые элементы из исходного файла) Так же отделяю элменты вектора coord
Это я сделал.

Вот только не получается разделить элементы values, стоящие между нулями (т.е. те, что в одной строке в матрицы) на диагональный элемент.

Вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    int row = 1;
    for ( int i = 0; i < values_z.size(); i++ )
    {
        if ( values_z[i] == 0 )
        { row++; }
        int colum = (coordinates_z[i] - row)/3 +1;
        if ( row == colum )
        {
            double current_el = values_z[i];
            int q = i;
            // делим элементы, стоящие справа от диагонального на диагональный
            while ( values_z[q] != 0 )
            {
                values_z[q] = values_z[q]/current_el;
                q++;
            }
            // делим элементы, стоящие слева от диагонального на диагональный
            int w = i;
            while (values_z[w] != 0 )
            {
                w--;
                values_z[w] = values_z[w]/current_el;
                if ( w < 0 ) { return 0;}
            }
        }
        if ( row != colum ){}
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.