Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
PFanthem
0 / 0 / 1
Регистрация: 11.10.2014
Сообщений: 115
#1

Написать функцию подсчета сумм строк матрицы

24.09.2015, 17:15. Просмотров 872. Ответов 7
Метки нет (Все метки)

Написать функцию подсчета сумм строк матрицы. И проверить упорядочены ли они
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2015, 17:15
Ответы с готовыми решениями:

Матрицы: Написать функцию, которая находит произведение ненулевых элементов двух строк матрицы
Задание: В предлагаемых вариантах необходимо написать и протестировать...

Упорядочить по росту сумм элементов строк строки той матрицы, у которой больше нулевых строк
Сидел думал над задачей почти всю ночь условия такие Даны три матрицы...

Написать функцию, осуществляющую циклический сдвиг строк и/или столбцов заданной матрицы
2. Дана матрица порядка MxN (M строк, N столбцов). Необходимо заполнить ее...

Матрицы: нахождение сумм положительных элементов строк каждой матрицы
программирование с использованием процедур составить программу для нахождения...

Описать функцию для подсчета строк, состоящих из одинаковых символов
Здравствуйте) дали задание, помогите пожалуйста разобраться. Описать функцию...

7
zss
Модератор
Эксперт С++
7057 / 6603 / 4178
Регистрация: 18.12.2011
Сообщений: 17,400
Завершенные тесты: 1
24.09.2015, 17:34 #2
Вот этот образец написан как-будто для Вас
Образцы (шаблоны) программ для типовых задач
0
PFanthem
0 / 0 / 1
Регистрация: 11.10.2014
Сообщений: 115
25.09.2015, 15:10  [ТС] #3
А с вещественной матрицей функция не работает? Или как там надо написать, чтобы выводило?
C++
1
2
3
4
5
6
7
8
void Process( int ** M,int *Sum, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        Sum[i] = 0;
        for ( size_t j = 0; j < m; ++j ) {
            Sum[i] += M[i][j];
        }
    }
}
Создание вещественной матрицы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
int main(){
 
    const int n = 5;
    const int m = 5;
    double a[n][m];
 
    for (int i = 0; i < n; ++i){
        for (int j = 0; j < m; ++j){
            a[i][j] = (rand()%10)/(rand()%9 + 1.);
            cout << setw(6) << fixed << setprecision(2) << a[i][j];
        }
        cout << endl;
    }
 
}
0
UltraPenguin
229 / 95 / 27
Регистрация: 20.03.2014
Сообщений: 304
Завершенные тесты: 1
25.09.2015, 15:41 #4
C++
1
void Process( double ** M,double *Sum, size_t n, size_t m )
не?
0
PFanthem
0 / 0 / 1
Регистрация: 11.10.2014
Сообщений: 115
25.09.2015, 16:12  [ТС] #5
Выдает такую ошибку error: cannot convert 'double (*)[5]' to 'double**' for argument '1' to 'void Process(double**, double*, size_t, size_t)'
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
void Process( double ** M,double *Sum, size_t n, size_t m ){
    for ( size_t i = 0; i < n; ++i ) {
        Sum[i] = 0;
        for ( size_t j = 0; j < m; ++j ) {
            Sum[i] += M[i][j];
        }
    }
}
int main(){
 
    const int n = 5;
    const int m = 5;
    double a[n][m];
 
    for (int i = 0; i < n; ++i){
        for (int j = 0; j < m; ++j){
            a[i][j] = (rand()%10)/(rand()%9 + 1.);
            cout << setw(6) << fixed << setprecision(2) << a[i][j];
        }
        cout << endl;
    }
    int* S=new int[n];
Process( a, S, n, m );
}
0
UltraPenguin
229 / 95 / 27
Регистрация: 20.03.2014
Сообщений: 304
Завершенные тесты: 1
25.09.2015, 16:16 #6
Вы наверно невнимательно просмотрели пример, приведенный уважаемым zss.
Это double a[n][m]; статическая матрица. А функция Process принимает динамическую. В примере была замечательная функция Create, которой вы пренебрегли.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
25.09.2015, 16:55 #7
Лучший ответ Сообщение было отмечено PFanthem как решение

Решение

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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
double sum_arr(const double *Arr, const size_t N){
    double sum=0;
    for (size_t i=0;i<N;i++) sum+=Arr[i];
    return sum;
}
 
 
bool is_order(const double *Arr, const size_t N){
 
    bool order=false;
 
    if (Arr[0] - Arr[1] >0.01 || Arr[0] == Arr[1]) order=true;
    for (size_t i=1;i<N-1;i++){
        if ( ((Arr[i] - Arr[i+1] <0.01) && (order == true  ) && (Arr[i]!=Arr[i+1]) ) ) return false;
        if ( ((Arr[i] - Arr[i+1] >0.01) && (order == false ) && (Arr[i]!=Arr[i+1]) ) ) return false;
    }
    return true;
}
 
 
int main(){
 
    const int n = 10;
    const int m = 3;
    double a[n][m];
    bool order;
 
    srand(time(NULL));
    for (int i = 0; i < n; ++i){
        for (int j = 0; j < m; ++j){
            a[i][j] = (rand()%10)/(rand()%9 + 1.);
            cout << setw(6) << fixed << setprecision(2) << a[i][j];
        }
        cout<<"\t("<<sum_arr(a[i],m)<<")\t";
        order = is_order(a[i],m);
        if (order) cout<<" is order\n";
        else cout <<" is not order\n";
    }
 
}
2
PFanthem
0 / 0 / 1
Регистрация: 11.10.2014
Сообщений: 115
25.09.2015, 17:05  [ТС] #8
Большое вам спасибо)
0
25.09.2015, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2015, 17:05

Алгоритм подсчета упорядоченных строк матрицы
Что не так? #include &lt;stdio.h&gt; int main() { int a; int i, j, k = 0,...

Описать функцию для подсчета числа строк, состоящих из одинаковых символов
Описать функцию для подсчета числа строк, состоящих из одинаковых символов.

Написать программу для подсчета числа строк файла
нужно решить задачу по программирования: Вот задание Пусть текстовый файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru