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

Обьявление массива переменного размера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменить порядок следования элементов в массиве на обратный http://www.cyberforum.ru/cpp-beginners/thread1817115.html
Здравствуйте. Надо написать функцию, но почему-то он у меня вылетает. Что я неправильно сделал? Вот код функции(сразу хочу извиниться за быдлокод, если кому-то стало плохо): void swap(float* f, size_t size) { ifstream fin("input.txt"); int n = 0; float tmp; while (!fin.eof()) {
C++ Найти сумму положительных элементов матрицы, стоящих выше побочной диагонали #include <iostream> #include <conio.h> #include <stdio.h> #include <ctime> #include <stdlib.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int k,s; http://www.cyberforum.ru/cpp-beginners/thread1817114.html
АВЛ дерево C++
Здравствуйте. Я начинающий программист и мне нужна помощь. Сейчас пытаюсь понять тему АВЛ деревьев и попробовала забить этот код, но к сожалению он не компилирует. Подскажите, где здесь ошибка? (код из методички, вот и не понимаю, что не так) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <malloc.h> #include <time.h> #include <Windows.h> typedef int ElementType; ...
C++ Перевести с паскаля на C++
помогите перевести с паскаля на C++ , очень надо.:) var n,i,j,k,l:longint; begin readln(n); repeat i:=i+1; j:=i;k:=0;l:=0; repeat k:=k+j mod 10;
C++ Заданы цифры - расставить знаки сложения и вычитания так, чтобы получилось выражение с заданным результатом http://www.cyberforum.ru/cpp-beginners/thread1817072.html
Имеются цифры 1, 2, 3, 4, 5, 6, 7, 8, 9. Необходимо расставить между ними любое количество знаков "плюс" или "минус" так, чтобы получить выражение, равное числу введенного пользователем. Например: Ввожу число 100. Результат: 123+4-5+67-89=100. Число 123 вышло из склеивания соседних цифр 1, 2 и 3. Также 67 и 89.
C++ Неожиданное поведение программы: исправить ошибку в коде извиняюсь за возможно глупый вопрос, но почему программа говорит,что в выделенной строке ошибка? хотел написать в ней: а в квадрате + в в квадрате = с в квадрате #include "stdafx.h" #include "iostream" #include "conio.h" #include "math.h" using namespace std; int main() подробнее

Показать сообщение отдельно
9senser9
0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 26
01.10.2016, 16:10     Обьявление массива переменного размера
Всем привет. Я написал программу, которая считает обратную матрицу путем элементарных преобразований. В Def C++ она отлично работает с любыми размерами матрицы, а вот в Microsoft Visual Studio мне начало подчеркивать n. Можете посмотреть ниже, как я ее объявил. Зачем я это сделал? Двухмерный массив не считается, если не использовать константу. В чем может быть проблема? Возможно ее исправить?
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
 
using namespace std;
 
int main() {
    int m;
    setlocale(LC_ALL, "Russian");
    cout << "Введите размер матрицы: ";
    cin >> m;
    cout << "Введите элементы матрицы: " << endl;
    const int n = m;
    float A[n][n];
    float B[n][n];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            cin >> A[i][j];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i != j) {
                B[i][j] = 0;
            }
            else {
                B[i][i] = 1.;
            }
        }
    }
    system("cls");
    for (int i = 0; i<n; i++) {
        cout << "\n";
        for (int j = 0; j<n; j++)
            cout << A[i][j] << " ";
    }
    for (int i = 0; i<n; i++) {
        cout << "\n";
        for (int j = 0; j<n; j++)
            cout << B[i][j] << " ";
    }
    system("pause");
    for (int i = 0; i < n; i++) {
        float k = A[i][i];
        for (int j = 0; j < n; j++) {
            B[i][j] = B[i][j] / k;
            A[i][j] = A[i][j] / k;
        }
    }
    /*for (int i = 1; i <= n - 1; i++) {
        float c = A[i][0]/A[0][0];
        for (int j = 0; j < n; j++) {
            B[i][j] += (-1)*(c*B[0][j]);
            A[i][j] += (-1)*(c*A[0][j]);
 
        }
    }*/
    for (int k = 0; k < n; k++) {
        for (int i = 0; i < n; i++) {
            if(k != i){
            float b = A[i][k] / A[k][k];
            for (int j = 0; j < n; j++) {
                B[i][j] -= b*B[k][j];
                A[i][j] -= b*A[k][j];
            }
            }
        }
    }
    /*for (int i = 0; i <= n - 1; i += 2) {
        float b = A[i][1] / A[1][1];
        for (int j = 0; j < n; j++) {
            B[i][j] -= b*B[1][j];
            A[i][j] -= b*A[1][j];
        }
    }
    for (int i = 0; i < n-1; i++) {
        float b = A[i][2] / A[2][2];
    for(int j=0;j<n;j++){
        B[i][j] -= b*B[2][j];
        A[i][j] -= b*A[2][j];
    }
    }*/
    for (int i = 0; i < n; i++){
        float b=A[i][i];
        for (int j = 0; j < n; j++) {
            B[i][j] /= b;
            A[i][j] /= b;
    }
    }
    system("cls");
    for (int i = 0; i<n; i++) {
        cout << "\n";
        for (int j = 0; j<n; j++)
            cout << A[i][j] << " ";
    }
    for (int i = 0; i<n; i++) {
        cout << "\n";
        for (int j = 0; j<n; j++)
            cout << B[i][j] << " ";
    }
 
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru