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

Матрица и динамическое распределение памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ число Фибонначи http://www.cyberforum.ru/cpp-beginners/thread90437.html
Здравствуйте!!!Помогите пожалуйста решить задачу по Си... Дано натуральное число N>10. Вычислить сумму всех чисел Фибоначчи, которые не превышают N. Числа Фибоначчи образуются по закону: f1 =1, f2 =1, f3 =f1 + f2, fk+1 =fk-1 +fk Жду помощи!
C++ Снова палиндромы с++ итак есть условие задачи с++ "По N, M найти сумму тех чисел из, которые являются палиндромами. " вот решение набросал #include <cstdlib> #include <iostream> using namespace std; bool Palindrom(int chislo) { http://www.cyberforum.ru/cpp-beginners/thread90434.html
Разница между Visual C++ и C++ Builder C++
Вчем разница между Visual C++ и C++ Builder?
C++ Построить динамический одномерный массив из элементов матрицы
Дана динамическая целочисленная матрица.Построить динамический одномерный массив,каждый эллемент которого равен сумме элементов одной строки исходной матрицы. Освободить память от матрицы,найти произведение эллементов одномерного массива и записать его как динамическую переменную. Все исходные данные,результаты и соответсвующие адреса распечатать.
C++ Программирование метода градиентного спуска - проверка кода на корректность http://www.cyberforum.ru/cpp-beginners/thread90355.html
Здравствуйте! мне необходимо сдать лабораторную работу по методу градиентного спуска. я запрограммировал этот метод поиска минимума функции. работает он корректно и минимум функции находит, но мой преподаватель имеет странную манеру проверять лабы - он задал шаг, кол-во итераций и проверяет по значению функции в заданной точке, сверяя ответ с ответом в своей программе. его ответ и мой...
C++ Разбить файл на части вот недавно изучил тему про fstream такая задача, нужно разбить файл на столько частей на сколько пожелает пользователь. к примеру на 10 fstream f("f.txt",ios::in); f.seekg(0,ios_base::end); cout<<"Razmer fayla "<<f.tellg()<<" byte"<<endl; int piece=(f.tellg()/10); cout<<"Budem delit` na 10 po "<<piece<<" byte"<<endl; f.seekg(0,ios_base::end); подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.01.2010, 21:13     Матрица и динамическое распределение памяти
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
#include <iostream>
#include <iomanip>
 
using namespace std;
 
/*
    Дана матрица A{aij}, . Сформулировать вектор Р, элементы которого равняются среднему значению 
    положительних элементов j-того столбца матрицы. В программе использовать функции вводу, 
    вывода и обработки матрицы, и динамического распределения памяти.
*/
 
/* возвращает среднее арифметическое положительных элементов столбца таблицы */
double averagePositive(int **matr, int rows, int col_index){
    int i, sum, cnt;
    
    for ( i = sum = cnt = 0; i < rows; ++i ){
        if ( matr[i][col_index] > 0 ){
            sum += matr[i][col_index];
            ++cnt;
        }
    }
    return (double)sum / (double)cnt;
}
 
/* заполнялка матрицы */
void fillMatrix(int **matr, int rows, int cols){
    for ( int i = 0; i < rows; ++i ){
        for ( int j = 0; j < cols; ++j ){
            cout << "[" << i << "][" << j << "] = ";
            cin >> matr[i][j];
        }
    }
}
 
/* выводилка матрицы */
void printMatrix(int **matr, int rows, int cols){
    for ( int i = 0; i < rows; ++i ){
        for ( int j = 0; j < cols; ++j )
            cout << setw(3) << matr[i][j] << ' ';
        cout << endl;
    }
}
 
int main(){
    int **matr, rows, cols, i;
    double *averages;
    
    cout << "Rows: ";
    cin >> rows;
    cout << "Columns: ";
    cin >> cols;
    
    matr = new int* [ rows ];
    for ( i = 0; i < rows; ++i )
        matr[i] = new int [ cols ];
    
    fillMatrix(matr, rows, cols);
    
    averages = new double [ cols ];
    for ( i = 0; i < cols; ++i )
        averages[i] = averagePositive(matr, rows, i);
    
    cout << endl << "Matrix:" << endl;
    printMatrix(matr, rows, cols);
    cout << endl << "Average column values:" << endl;
    cout << fixed;
    cout.precision(1);
    for ( i = 0; i < cols; ++i )
        cout << averages[i] << ' ';
    cout << endl;
    
    for ( i = 0; i < rows; ++i )
        delete [] matr[i];
    delete [] matr;
    delete [] averages;
    
    return 0;
}
 
Текущее время: 12:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru