Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
1

Функция сложения матриц

24.04.2015, 23:41. Показов 2488. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выдаёт ошибку: аргумент типа Int(*) несовместим с типом int. Подскажите,где ошибка.
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
79
80
81
82
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define n 128
 
int summa(int **a,int **b, int nl,int nc)
{
    int i,j,c[n][n];
   for(i=1;i<=nl;i++)
        {
            for(j=1;j<=nc;j++)
            {
               c[i][j]=a[i][j]+b[i][j];
            }
        }
        for(i=1;i<=nl;i++)
        {
            for(j=1;j<=nc;j++)
            {
                printf(" %d",c[i][j]);
            }
            putchar('\n');
        }
   
  } 
 
void main()
{   
    int i,j;
    int nl,nc;
    int nl1,nc1,nl2,nc2;
    int a[n][n],b[n][n];
    int c[n][n];
    printf("Nomer liniy dlia mt1:"); 
    scanf_s("%d",&nl1);
    printf("Nomer colon dlia mt1:"); 
    scanf_s("%d",&nc1);
    
    printf("Nomer liniy dlia mt2:");  
    scanf_s("%d",&nl2);
    printf("Nomer colon dlia mt2:");
    scanf_s("%d",&nc2);
 
    if(nc1!=nc2 && nl1!=nl2) 
    {
        printf("Summa nevozmojna!");
    }
 
    if((nc1>128) || (nc2>128) || (nl1>128) || (nl2>128))
    {
        printf("Summa nevozmojna!");
    }
 
    else
   
    {
        nl=nl1=nl2;     
        nc=nc1=nc2;
 
        printf("\nmt1:\n");
    for(i=1;i<=nl;i++)
        {
            for(j=1;j<=nc;j++)
            {
                printf("Elemento: %d %d => ",i,j);
                scanf_s(" %d",&a[i][j]);
            }
        }
     printf("\nmt2:\n");
       for(i=1;i<=nl;i++)
        {
            for(j=1;j<=nc;j++)
            {
                printf("Elemento: %d %d => ",i,j);
                scanf_s(" %d",&b[i][j]);
            }
        }
      summa(a,b,nl,nc);
      _getch();
}
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2015, 23:41
Ответы с готовыми решениями:

Функция сложения матриц
помогите реализовать функцию сложения матриц рпнимающую указатели на слогаемые и результирующую...

Функция сложения матриц
привет. Вот написал ф-цию но не могу разобраться что она должна возвращать? #include &lt;vcl.h&gt;...

Функция для сложения и вычитания вещественных матриц
Помогите пожалуйста с задачами. Никогда с такими не сталкивался поэтому нужна помощь. Буду...

Написать свой класс, реализующий матричную арифметику, операции сложения и умножения матриц. Сложения матрицы с числом и
Написать свой класс, реализующий матричную арифметику, операции сложения и умножения матриц....

10
9 / 9 / 0
Регистрация: 14.04.2015
Сообщений: 85
25.04.2015, 00:13 2
Попробуй вот так
C++
1
int summa(int *a, int *b, int nl, int nc)
0
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
25.04.2015, 00:34  [ТС] 3
Не помогло
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
25.04.2015, 00:41 4
Gooner123,
1. читайте что пишет компилятор
2. индексация начинается с 0
3. void main() - не стандарт
4. используйте std::vector<>,std::cin,std::cout, раз пишите на C++
...
1
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
25.04.2015, 00:48  [ТС] 5
Все подправил.
Ничего не изменилось
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
25.04.2015, 00:52 6
Цитата Сообщение от Gooner123 Посмотреть сообщение
Все подправил.
Ничего не изменилось
Значит не все.
0
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
25.04.2015, 01:08  [ТС] 7
Вот что выдаёт компилятор: Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
25.04.2015, 01:09 8
Цитата Сообщение от Gooner123 Посмотреть сообщение
Типы, на которые указывают указатели, не связаны
ваши действия? Компилятор случайно не пишет в каких строчках непорядок?
0
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
25.04.2015, 01:20  [ТС] 9
78-ая строка.Там ,где я вызываю созданную функцию.

Добавлено через 2 минуты
переменные a и b выделены

Добавлено через 1 минуту
summa: невозможно преобразовать параметр 1 из "int [128][128]" в "int **"
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
25.04.2015, 09:04 10
Лучший ответ Сообщение было отмечено Gooner123 как решение

Решение

Нельзя смешивать передачу динамических и статических массивов.
1 вариант:
оставляем статическими и меняем заголовок функции:
C++
1
int summa(int a[n][n],int b[n][n], int nl,int nc)
2 вариант - все массивы сделать динамическими.
C++
1
2
3
4
5
6
7
8
int** a;
a=new int*[n];
for(int i=0;i<n;i++)
   a[i]=new int[n];
//... работаем
for(int i=0;i<n;i++)
   delete[] a[i];
delete[] a;
и так с каждым массивом
1
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 10
25.04.2015, 13:32  [ТС] 11
Да,по 1-ому варианту сделал,помогло.
Спасибо большое)
0
25.04.2015, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2015, 13:32
Помогаю со студенческими работами здесь

Операция сложения матриц
Реализовать следующие операции над матрицами: • сложения, Вот например,как зделать операцию...

Перегрузка оператора сложения матриц
Всем привет. Народ, снова нуждаюсь в вашей помощи. Есть класс матрицы class DoubleArr {...

Параллельный алгоритм сложения матриц
Подскажите, как в коде C++ реализовать параллельный алгоритм сложения матриц?

Реализовать функцию сложения матриц
Дорогие друзья у меня такой вопрос я написал класс class Matrix { private: int size; int...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru