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

Применение матриц в качестве параметров функции - C++

Восстановить пароль Регистрация
 
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
19.01.2014, 17:15     Применение матриц в качестве параметров функции #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
#include <iostream>
 
using namespace std;
 
#define M 4
 
 
double PrintMatr(double Matr[][M], int n, int m)
 
{
 
   int i, j;
 
   cout << "Matriza:" << endl;
 
   for(i = 0; i < n; i++)
 
   {
 
      for(j = 0; j < m; j++)
 
         cout << Matr[i][j] << " ";
 
      cout << endl;
 
   }
   
return Matr[n][m];
 
}
 
 
int main()
 
{
 
   const int n=4; 
 
   const int m=M;
 
 
 
   double Matr[n][m] = {{101.4, 101.4, 101.4, 101.4}, {400, 400, 400, 400}, {23.9, 23.9, 23.9, 23.9}, {75, 75, 75, 75}}; 
   
  
  
 
double value1 =    PrintMatr(Matr, n, m);
   
 
 double Matr[n][M] = {{0.42, 0.09, 0.17, 0.33}, {0.4, 0.3, 0.2, 0.1}, {0.5, 0.2, 0.2, 0.1}, {0.6, 0.2, 0.15, 0.05}};   
 
double value2 =  PrintMatr(Matr, n, m);  
   
 
   
   
   
    system("pause");  
 
   return 0;
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 17:15     Применение матриц в качестве параметров функции
Посмотрите здесь:

C++ Напишите функцию, которая принимает три числа в качестве параметров и возвращает их сумму.
C++ callback функции и функциональные объекты в качестве параметров
C++ передать целый массив в качестве входных параметров для функции main()?
C++ Передача массивов указателей в качестве параметров функции
что такое int argc, char *argv[] в качестве параметров главной (main) функции? C++
Как будет выглядеть заголовок функции, принимающей в качестве входных параметров два целых числа и возвращающей число с плавающей запятой двойной точн C++
C++ Функция, которая получает в качестве параметров два целых числа и возвращает сумму
Вставки препроцессорных макросов типа __FUNCTION__ в функцию в качестве параметров по умолчанию C++
C++ Применение циклов для расчета параметров объектов на С++
Использование функций в качестве формальных параметров C++
C++ Как передать в функцию в качестве параметров указатель на файл
C++ Argc argv, передать несколько значений в качестве параметров

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2413 / 1635 / 204
Регистрация: 08.06.2007
Сообщений: 6,473
Записей в блоге: 4
19.01.2014, 17:39     Применение матриц в качестве параметров функции #2
То что вы пишете это не ввод матрицы, а описание переменной типа матрица и ее инициализация.
Компилятору не нравится, что вы описали две переменных с одним и тем же именем.
Возьмите для второго случая другое имя, например Matr1. Либо присвойте элементам матрицы Matr новые значения, что вы, наверно, и делали в случае с обычными переменными.
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
20.01.2014, 13:06  [ТС]     Применение матриц в качестве параметров функции #3
Спасибо за совет. В принципе понял свою ошибку. Думал об этом, но никак не додумал. Как говорится, "а ларчик просто открывался".В результате задал новую переменную Matr1 и от ее имени вызвал функцию вывода матрицы. в результате функция main выглядит следующим образом:

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
int main()
 
{
 
   const int n=4; //число строк
 
   const int m=M;
 
 
//Задание матрицы Х входных параметров
double Matr[n][m] = {{101.4, 101.4, 101.4, 101.4}, {400, 400, 400, 400}, {23.9, 23.9, 23.9, 23.9}, {75, 75, 75, 75}}; 
   
 
//Первый вызов функции вывода матрицы на экран
double value1 =    PrintMatr(Matr, n, m);
   
//Задание матрицы  W весов 
 double Matr1[n][M] = {{0.42, 0.09, 0.17, 0.33}, {0.4, 0.3, 0.2, 0.1}, {0.5, 0.2, 0.2, 0.1}, {0.6, 0.2, 0.15, 0.05}};   
 //Второй вызов функции вывода матрицы на экран
double value2 =  PrintMatr(Matr1, n, m);  
     
   
   
   
    system("pause");  
 
   return 0;
 
 
}
Yandex
Объявления
20.01.2014, 13:06     Применение матриц в качестве параметров функции
Ответ Создать тему
Опции темы

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