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

Округление значений в двумерной динамической матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Surface + Visual Studio http://www.cyberforum.ru/cpp-beginners/thread1015120.html
Всем добра. Кто-нибудь пробовал ставить визуалку 2012 на сурфайс или это извращение ?
C++ Сдвиг массива, перевести с Pascal Имеется код на Паскале, нужно переписать на С++))) Паскаль не учил, не получается, кто поможет? const nmax = 20; var a: array of integer; x: integer; i, n, key: integer; begin http://www.cyberforum.ru/cpp-beginners/thread1015084.html
C++ Определить функцию, возвращающую минимальное из нескольких чисел
Определить функцию, возвращающую минимальное из нескольких чисел. Выполнить перегрузку функции для следующих типов параметров: 1.Три параметра типа int. 2.Четыре параметра типа int. 3.Три параметра типа float. 4.Два параметра типа double. Более по простому,Большое спасибо!!!
C++ Вывод данных в выходной файл
Здравствуйте =).Вот готовлюсь к олимпиаде, встретил такую задачку : На свой день рождения Петя купил красивый и вкусный торт, который имел идеально круглую форму. Петя не знал, сколько гостей придет на его день рождения, поэтому вынужден был разработать алгоритм, согласно которому он сможет быстро разрезать торт на N равных частей. Следует учесть, что разрезы торта можно производить как по...
C++ Что тут исправить в цикле? http://www.cyberforum.ru/cpp-beginners/thread1015061.html
#include "stdafx.h" #include <stdio.h> #include <cmath> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL,"Rus"); int n; int i=1; float k, S=0;
C++ Нужно изменить двумерные массивы на динамические Добрый вечер. Не помешала бы ваша помощь,в моей лабе,нужно заменить двумерные массивы на динамические. К сожалению,я не знаю как это сделать. *Задание: В матрице определить номер строки,в которой находится самая длинная серия одинаковых элементов. **Еще условие,что строки двумерного массива могут иметь различную длину. ***С программой я намудрил,но там все должно быть понятно. #include... подробнее

Показать сообщение отдельно
Blueeyer
12 / 12 / 1
Регистрация: 09.10.2013
Сообщений: 222
22.11.2013, 03:35     Округление значений в двумерной динамической матрице
Как сделать так, чтобы при делении, вычитании и прочих действий между значениями двумерной матрицы - все они округлялись до 0.001? У меня почему-то вышла такая вещь, что при умножении 4*0,8 и всё это отнять от четверки - выходит -596046e-008 - как я понимаю - это ничтожно малое число, которое при округлении даст 0?
Вот код программки:
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
#include<iostream>
#include<cmath>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    float **matrix=NULL;
    int n, m;
    cout<<"Введите кол-во строк: "<<endl;
    cin>>n;
    cout<<"Введите кол-во неизвестных в строке: "<<endl; 
    cin>>m;
 
    matrix=new float *[n];
    for (int i=0; i<n; i++)
   matrix[i]=new float [m+1];
    for (int v=0; v<n; v++){
        for (int j=0; j<m; j++){
            cout<<"Строка #"<<v+1<<" ----- Неизвестная #"<<j+1<<endl;
            cin>>matrix[v][j];
        }
        cout<<"Чему это равно? ("<<v+1<<" строка)"<<endl;
        cin>>matrix[v][m];
    }
    cout<<endl<<endl<<endl<<"Начальная матрица."<<endl;
    for (int k = 0; k < n; k++){
        for (int l = 0; l <= m; l++){          //Для вывода матрицы 
            cout<<matrix[k][l]<<"  ";
        }
        cout<<endl<<endl;    
    }   cout<<endl<<endl<<endl;     
    for (int goo = 1; goo < 2; goo++){ // Там где 2 - поменять на (n+1)
    for (int bl = 0; bl < goo; bl++){ 
        for(int bla = bl; bla <= bl; bla++){
            int la;
            for(la = n; la >= 0; la--){
                int o = bl+bla, ko = bla+la;
                matrix[o][ko]= (float) (matrix[o][ko])/(matrix[bl][bl]);
        }
            }
    }
    }
    cout<<"Делим всю строчку на первое неизвестное."<<endl;
        for (int k = 0; k < n; k++){
        for (int l = 0; l <= m; l++){          //Для вывода матрицы 
            cout<<matrix[k][l]<<"  ";
        }
        cout<<endl<<endl;
        }cout<<endl<<endl<<endl; 
    for(int jgoo = 1; jgoo < n; jgoo++){// строки матрицы
        for(int jbl = m; jbl >= 0; jbl--){// неизвестные
            int jgoal = 0;// первое неизвестное первой строки (надо будет поменять)
            
            matrix[jgoo][jbl] = (float) matrix[jgoo][jbl] - (matrix[jgoo][jgoal])*(matrix[jgoal][jbl]);
        }
    }
        cout<<"Отнимаем от каждой последующей строки первую строчку, умноженную на первое число каждой из них."<<endl;
            for (int k = 0; k < n; k++){
        for (int l = 0; l <= m; l++){          //Для вывода матрицы 
            cout<<matrix[k][l]<<"  ";
        }
        cout<<endl<<endl;
        }cout<<endl<<endl<<endl; 
 
 
    system("PAUSE");
    return 0;
}
Вот как всё это выглядит (Начальные значения матрицы вводятся пользователем в ручную, для простоты я взял однозначные числа).
Округление значений в двумерной динамической матрице
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru