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

Шаг LU разложения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Одномерные массивы + указатели (среднее арифметическое чисел, введенных с клавиатуры) http://www.cyberforum.ru/cpp-beginners/thread1090149.html
День добрый. В общем не получается у меня запустить эту задачу с помощью указателей: #include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { int a,n,i; float b, k,p=0,s; printf("Vvedite n= "); // начало заполнения массива
C++ Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) Вот мой код. Суммарное число выводит слишком большее, а после завершения программы ошибку:"Run-Time Check Failure #2 - Stack around the variable 'numb' was corrupted." или подобную, только с другим массивом: "Run-Time Check Failure #2 - Stack around the variable 'mass' was corrupted." .С массивом mass еще проблемы есть.. #include <iostream> using namespace std; int main() { int K; cout <<... http://www.cyberforum.ru/cpp-beginners/thread1090142.html
Запись в файл C++
Ребята, когда я записываю в файл текст с помощью этого кода, то в файле получается первая строка пустая и только потом идет текст. Где у меня записывается эта пустая строка я не вижу :( #include <fstream> #include <iostream> #include <string> #include <stdexcept> std::string fileName; int main()
функция по выводу звезд на экран нн работает, в чем дело? C++
#include <iostream> #include <conio.h> void function (int k)// { for(int i=0;i<k;i++)
C++ Символы в C++ http://www.cyberforum.ru/cpp-beginners/thread1090115.html
Пишу игру покер в консоли для закрепления знаний по ГСЧ и указателям, хочу чтобы выводилось обозначение пик и остальных мастей(символ взял с википедии(http://ru.wikipedia.org/wiki/Карточная_масть) справа в скобочках): char piki='♠'; Пишет необъявленный идентификатор. Вообщем понятно, что звучит извращенно,но может у вас есть другие варианты.. P.S. Да и символ неправильно выводится у вас на...
C++ Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . ) типа in Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . ) типа int. Написать вызывающую функцию main, которая обращается к функции kvadr не менее трех раз с количеством параметров 3, 7, 11. подробнее

Показать сообщение отдельно
Vyzov
6 / 6 / 1
Регистрация: 19.02.2013
Сообщений: 64

Шаг LU разложения - C++

05.02.2014, 19:03. Просмотров 217. Ответов 0
Метки (Все метки)

Пишу программу для LU разложения, вот код одного шага:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void stepLU (double **a,int i, int n)
{
    for (int j = i+1; j<n; j++)
        {
            double u = a[j][i]/a[i][i];//для проверки вычислений
            for(int k = 0; k < n;k++)
            {           
                double t = (a[j][k] - ((a[j][i]/a[i][i]) * a[i][k]));//для проверки вычислений
                a[j][k] = t;//a[j][k] - a[j][i]/a[i][i] * a[i][k];
            }
        }
}
вызывается из в мейне из цикла for(int i = 0; i < n-1; i++) где n - размерность матрицы

Проблема в том что код изменяет только первые елементы строки, т.е.
из матрицы
-1, -3, -4
-1, -3, -5
-2, -1, -5

получается
-1, -3, -4
0, -3, -5
0, -1, -5

вместо

-1, -3, -4
0, 0, -1
0, 5, 13

Пройдя по циклу на листке все получается, а вот при запуске на компе вот такая проблема(см.выше).
При пошаговом дебаге видно, что после 1-й элемент строки высчитывается правильно, а последующие просто присваиваются без изменений, сам пока не дошел почему так происходит, может кто раньше поймет...

З.Ы. Шаг LU разложения - тот же метод гауса

Добавлено через 14 минут
Вопрос закрыт все заработало после изменения кода таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void stepLU (double **a,int i, int n)
{
    for (int j = i+1; j<n; j++)
        {
            double u = a[j][i]/a[i][i];
            for(int k = 0; k < n;k++)
            {
                double x = a[j][k];
                double y = a[i][k];
                double t = x - u*y;
                a[j][k] = t;
            }
        }
}
От таки дела =\
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru