Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2016, 23:29   #1
iyoulka
 
Регистрация: 29.04.2016
Сообщений: 6
По умолчанию Переписать программу с динамического массива на статический

Помогите,пожалуйста,переписать программу с динамического массива на статический.Программа для решения матриц
Код:
#include <iostream>
using namespace std;
int n, i, j, k;
double d, s;
int main()
{
    cout << "Poryadok: " << endl;
    cin >> n;
    double **a = new double *[n];
    for (i = 0; i <= n; i++)
        a[i] = new double[n];
    double **a1 = new double *[n];
    for (i = 0; i <= n; i++)
        a1[i] = new double[n];
    double *b = new double[n];
    double *x = new double[n];
    cout << "Vvod " << endl;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= n; j++)
        {
            cout << "a[ " << i << "," << j << "]= ";
            cin >> a[i][j];
            a1[i][j] = a[i][j];
        }
        cout << "b,[ " << i << "]= ";
        cin >> b[i];
    }
    for (k = 1; k <= n; k++) 
    {
        for (j = k + 1; j <= n; j++)
        {
            d = a[j][k] / a[k][k]; 
            for (i = k; i <= n; i++)
            {
                a[j][i] = a[j][i] - d * a[k][i]; 
            }
            b[j] = b[j] - d * b[k]; 
        }
    }
    for (k = n; k >= 1; k--) 
    {
        d = 0;
        for (j = k + 1; j <= n; j++)
        {
            s = a[k][j] * x[j]; 
            d = d + s; 
        }
        x[k] = (b[k] - d) / a[k][k]; 
    }
    cout << "Korni sistemy: " << endl;
    for (i = 1; i <= n; i++)
        cout << "x[" << i << "]=" << x[i] << " " << endl;
 
    system("pause");
    return 0;
}
iyoulka вне форума Ответить с цитированием
Старый 12.10.2016, 07:43   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

1. Какие у вас ограничения на вводимый n? Если оно есть возьмите и заведите массивы N+1 размера. Если его нет, то остается вариант с частичным вводом, сохранениями и подгрузками, но это явно что-то не то...
2. У вас по всей программе выходы за границы массива. У вас массивы размерности n, а вы считаете от 0 до n включительно.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать 2 массива вместе. Динамический и Статический lalka123 Общие вопросы Delphi 0 11.12.2014 15:37
ведите одномерный статический массив из (К) чисел. Расположите элементы массива в обратном порядке. Sanya5369 Общие вопросы C/C++ 16 09.10.2013 23:57
Переписать в массив C(n) положительные элементы массива b(n) делённые на 2 . Со сдвигом (сжатием) массива. SnS Lazarus, Free Pascal, CodeTyphon 4 29.09.2013 00:21
объявление динамического массива katena88 Общие вопросы C/C++ 45 19.06.2012 21:53
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44