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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VВладимир
1 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 50
#1

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

19.01.2014, 17:15. Просмотров 284. Ответов 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
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;
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Применение матриц в качестве параметров функции (C++):

Передача массивов в качестве параметров функции - C++
Задав динамический двумерный массив вещественных данных (матрицу А размером NxN), реализовать его обработку, как указано в варианте....

Передача массивов указателей в качестве параметров функции - C++
Доброго времени суток, не компилится данный код. Ошибка возникает в функции deal(deck, suit, face);. Код полностью скомпипастил из...

callback функции и функциональные объекты в качестве параметров - C++
Всем привет. В STL есть алгоритмы, которые требуют наличия функционального объекта, например sort, а некоторые алгоритмы, такие как...

Передать целый массив в качестве входных параметров для функции main()? - C++
Было рабочее оконное приложение Qt, теперь всю реализацию &quot;впихнуть&quot; в консольное приложение C++(( Смысл: пользователь вводит строки,...

что такое int argc, char *argv[] в качестве параметров главной (main) функции? - C++
И зачем

Как будет выглядеть заголовок функции, принимающей в качестве входных параметров два целых числа и возвращающей число с плавающей запятой двойной точн - C++
1. int a, int b: f ( double ) 2. double f ( int a, int b ) 3. int f ( double a, int b ) 4. f ( int a, int b, return double ) 5....

2
palva
2748 / 1849 / 267
Регистрация: 08.06.2007
Сообщений: 7,037
Записей в блоге: 4
19.01.2014, 17:39 #2
То что вы пишете это не ввод матрицы, а описание переменной типа матрица и ее инициализация.
Компилятору не нравится, что вы описали две переменных с одним и тем же именем.
Возьмите для второго случая другое имя, например Matr1. Либо присвойте элементам матрицы Matr новые значения, что вы, наверно, и делали в случае с обычными переменными.
1
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;
 
 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 13:06
Привет! Вот еще темы с ответами:

Применение циклов для расчета параметров объектов на С++ - C++
Здравствуйте! Помогите, пожалуйста, в решении такой проблемы. Написал простенькую программу на С++, в главной функции рассчитываются...

Использование функций в качестве формальных параметров - C++
Помогите вычислить f(x)/g(x), где в качестве f(x) и g(x) могут быть четыре различные функции, возвращающие вещественные значения

Как передать в функцию в качестве параметров указатель на файл - C++
В общем есть функция (Copy_System_Files_To_New_System_Files), которая должна делать 4 раза одно и тоже действие, только с разными...

Argc argv, передать несколько значений в качестве параметров - C++
void Math() { double a=2, b=3, c=9, x,y, x1,k; cout&lt;&lt;&quot;Vvedite x:&quot;;cin&gt;&gt;x; cout&lt;&lt;&quot;Vvedite x1:&quot;;cin&gt;&gt;x1; cout&lt;&lt;&quot;Vvedite...


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

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

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