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

Непонтное поведение массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор для C++ http://www.cyberforum.ru/cpp-beginners/thread697895.html
Подскажите компилятор C++. с поодержкой всех возможностей шаблонов (желательно с редактором) Не среду громоздкую, а чисто под кансоль
C++ подскажите в чем ошибка только сегодня начал знакомство и вот уже проблемка)подскажите пожалуйста в чем ошибка)) Две дроби a/b и c/d можно сложить следующим образом:a/b + c/d = (a*d + b* c)/(b*d)Например, 1/4 + 2/3 =... http://www.cyberforum.ru/cpp-beginners/thread697891.html
C++ Проверка палиндромности
Дано целое число. Определить, является ли десятичная запись этого числа палиндромом (читается одинаково справа налево и слева направо, например 43543). помогите пожалуйста в написании кода или...
Калькулятор на Си. Как реализовать триногометрические ф-ции и функцию логарифм? C++
Написал код в котором надо вводить каждый елемент(первое число, знак операции, второе число, знак операции, 3... знак "=") по отдельности. + - * / работают, а вот sin... не работают. Во первых как...
C++ Как считать матрицу 3*3 из файла если он там задан неправильно http://www.cyberforum.ru/cpp-beginners/thread697881.html
как считать матрицу 3*3 из файла если он там задан неправильно например в файле 4 5 6 7 8 1 2 3 4 9 8 7 а должно считать 4 5 6 1 2 3 9 8 7
C++ 2 задачи по строкам 1)Дан текст.Первое по порядку самое короткое слово текста заменить первым по порядку самым длинным словом, если их длинны не совпадают. 2)Дан текст.Удалить все слова, которые начинаются на одну и ту... подробнее

Показать сообщение отдельно
Croessmah
Пришел
Эксперт CЭксперт С++
13771 / 7855 / 894
Регистрация: 27.09.2012
Сообщений: 19,281
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 21:34
Прокомментировал изменения
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
void transpose(int** matrix, const int& N)//Зачем передавать как ***? Если Вы не собираетесь менять сам указатель matrix?
{
    for(int i = 0; i < N; ++i) {
        for(int j = i; j < N; ++j) {
            //Меняет местами элементы нормально
            //swap(*(**matrix + N * i + j), *(**matrix + N * j + i));
            
 
            swap(matrix[i][j], matrix[j][i]);//Ну тут понятно
            // Абсолютно непонятное мне поведение 
            //(*matrix[0][2] = 4), почему так получается?
        }
    }
}
int main(int argc, char* argv[])
{
    int N = 2; //matrix size (NxN)
    cin >> N;
 
    int** matrix = new int*[N];
    matrix[0] = new int[N*N];
    for(int i = 1; i < N; ++i)
        matrix[i] = matrix[i - 1] + N;
 
    for(int i = 0; i < N; ++i)
        for(int j = 0; j < N; ++j)
            cin >> matrix[i][j]; //{3 1 2 3 4 5 6 7 8 9}
 
    { //Вывод матрицы
            for(int i = 0; i < N; ++i) {
                for(int j = 0; j < N; ++j)
                    cout << matrix[i][j] << " ";
                cout << endl << endl;
            }
    }
 
    transpose(matrix, N);//Переделал вызов из-за изменения ***  на **
 
    { //Вывод матрицы
        for(int i = 0; i < N; ++i) {
            for(int j = 0; j < N; ++j)
                cout << matrix[i][j] << " ";
            cout << endl << endl;
        }
    }
    delete [] matrix[0];
    delete [] matrix;
     system("pause");
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru