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

Найти ошибку и оформить вывод массива, как функцию - C++

Восстановить пароль Регистрация
 
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.05.2014, 21:25     Найти ошибку и оформить вывод массива, как функцию #1
Доброго времени суток! Помогите найти ошибку. И оформить вывод массива как функцию. Заранее благодарю.
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
#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
 
int norm(int* matrix,int n)
{
int sum = 0;
for (int i = 0; i<n; i++)
for (int j = 0; j < n; j++)
sum += abs(matrix[i][j]);
return sum;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
const int n = 3;
int matrix1[n][n] = {{1,2,5},{2,3,7},{2,3,7}};
cout<<"Исходная матрица 1: "<<endl;
 
    for ( int i=0; i < 3; i++ ){
    cout<<"{";
    for ( int j=0; j < 3; j++ ){
    if( j<7){
    cout<< matrix1[i][j]<<", ";
    }
    else {
    cout<<matrix1[i][j]<<"}"<<endl;
    } 
    }
    }
 
int matrix2[n][n] = {{3,2,9},{1,3,1},{2,3,7}};
cout<<"Исходная матрица 2: "<<endl;
 
    for ( int i=0; i < 3; i++ ){
    cout<<"{";
    for ( int j=0; j < 3; j++ ){
    if( j<7){
    cout<< matrix1[i][j]<<", ";
    }
    else {
    cout<<matrix1[i][j]<<"}"<<endl;
    } 
    }
    }
 
int matrix3[n][n] = {{1,7,3},{2,8,1},{2,3,7}};
cout<<"Исходная матрица 3: "<<endl;
 
    for ( int i=0; i < 3; i++ ){
    cout<<"{";
    for ( int j=0; j < 3; j++ ){
    if( j<7){
    cout<< matrix1[i][j]<<", ";
    }
    else {
    cout<<matrix1[i][j]<<"}"<<endl;
    } 
    }
    }
 
int sum1 = norm(*matrix1,n);
int sum2 = norm(*matrix2,n);
int sum3 = norm(*matrix3,n);
return 0;
int min=sum1;
int k=1;
if (sum2<min) { min=sum2; k=2;}
if (sum3<min) {min=sum3; k=3;}
cout<<"Наименьшая норма у " <<k<<" матрицы "<<endl;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 21:25     Найти ошибку и оформить вывод массива, как функцию
Посмотрите здесь:

«Вычеркивание» строки и столбца из матрицы оформить как функцию потока C++
C++ С++Оформить как функцию сортировку элементов отдельной строки. Ввод и вывод элементов матрицы оформить как функцию.
Передача массива в шаблонную функцию, найти ошибку C++
Как оформить код в функцию C++
Найдите ошибку (класс на ввод и вывод массива) C++
Ошибочный вывод массива через функцию C++
Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() C++
Как оформить ввод данных в функцию так что бы следующая за ней их использовала? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vandris
 Аватар для Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 90
16.05.2014, 00:05     Найти ошибку и оформить вывод массива, как функцию #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Немного подправил, вроде работает как задумано

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <cmath>
 
typedef std::vector<std::vector<int>> Matrix;
 
int norm (Matrix matrix)
{
    int sum = 0;
    for (int i = 0; i < matrix.size(); i++)
        for (int j = 0; j < matrix[i].size(); j++)
            sum += std::abs(matrix[i][j]);
    return sum;
}
 
void print (Matrix matrix)
{
    for (int i = 0; i < matrix.size(); i++)
    {
        for (int j = 0; j < matrix[i].size(); j++)
            std::cout << matrix[i][j] << " ";
 
        std::cout << std::endl;
    }
}
 
int main()
{
    Matrix matrix_1 = {{1, 2, 5}, {2, 3, 7}, {2, 3, 7}};
    Matrix matrix_2 = {{3, 2, 9}, {1, 3, 1}, {2, 3, 7}};
    Matrix matrix_3 = {{1, 7, 3}, {2, 8, 1}, {2, 3, 7}};
 
    std::cout << "Исходная матрица 1: " << std::endl;
    print(matrix_1);
 
    std::cout << "Исходная матрица 2: " << std::endl;
    print(matrix_2);
 
    std::cout << "Исходная матрица 3: " << std::endl;
    print(matrix_3);
 
    int sum1 = norm(matrix_1);
    int sum2 = norm(matrix_2);
    int sum3 = norm(matrix_3);
 
    int min = sum1;
    int k = 1;
    if (sum2 < min)
    {
        min = sum2;
        k = 2;
    }
    if (sum3 < min)
    {
        min = sum3;
        k = 3;
    }
    std::cout << "Наименьшая норма у " << k << " матрицы " << std::endl;
    return 0;
}


P.S. вектора могу переделать на указатели при необходимости, но тогда матрицы будете задавать или с клавиатуры или случайно или из файла.
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
16.05.2014, 18:42  [ТС]     Найти ошибку и оформить вывод массива, как функцию #3
Спасибо огромное)))
Yandex
Объявления
16.05.2014, 18:42     Найти ошибку и оформить вывод массива, как функцию
Ответ Создать тему
Опции темы

Текущее время: 01:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru