Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 22.03.2020
Сообщений: 11
1

Ошибка: cannot convert 'int (*)[50]' to 'int*' for argument '1' to 'void vvod2m(int*, int*, int*, char)'Х2

27.03.2020, 03:26. Показов 1010. Ответов 7

Author24 — интернет-сервис помощи студентам
Матрицы An1*m1 и Bn2*m2 вводить с клавиатуры (размерности >3, m1=n2). Выполнять через подпрограммы.
выводит следующие ошибки:
1)[Error] cannot convert 'int (*)[50]' to 'int*' for argument '1' to 'void vvod2m(int*, int*, int*, char)'Х2
2)[Error] lvalue required as left operand of assignment
3)[Error] invalid types 'int[int]' for array subscript

Помогите, пожалуйста.

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
#include <stdio.h>
 
void vvod2m(int *p, int *n, int *m, char k);
void vivod2m(int *p, int *n, int *m, char k);
 
int main()
{
    int A[50][50],B[50][50],C[50][50],n1,m1,n2,m2,a,b,c,n,m;
    float f;
    vvod2m(A,&n1,&m1,'A');
    vvod2m(B,&n2,&m2,'B');
    if(n>3 && m>3 && n1=m2)
    {
        vivod2m(A,&n1,&m1,'A');
        vivod2m(B,&n2,&m2,'B');
    }
    else{
        printf("Error");
    }
    return(0);
}
 
void vvod2m(int *p, int *n, int *m, char k)
{
    int i,j;
    printf("Введите число строк столбцов (n и m) матрицы %c",k);  
    scanf("%d%d",&*n,&*m);
    for(i=0; i<*n; i++)         //строка
    {
        for(j=0; j<*m; j++)     //столбец
        {
            printf("[%d][%d]=",i+1,j+1);
            scanf("%d",&p[i][j]);
        }
    }
}
 
void vivod2m(int *p, int *n, int *m, char k)
{
    int i,j;
    printf("Массив %c \n",k);
    for(i=0; i<*n; i++)         //строка
    {
        for(j=0; j<*m; j++)     //столбец
        {
            printf("[%d][%d]=",i+1,j+1);
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2020, 03:26
Ответы с готовыми решениями:

Error C2040:strnset_2:"char *(char *,int,unsigned int)" отличается по уровням косвенного обращения от "int ()"
Не могу найти в чём ошибка. error C2040: strnset_2: &quot;char *(char *,int,unsigned int)&quot; отличается...

Ошибка: cannot convert ‘int (*)[j]’ to ‘int**’
Уважаемые господа, никак не могу понять в чем ошибка, помогите. При сборке выводится одна ошибка:...

Ошибка компиляции Cannot convert "int**" to "int*", "int*" to "int"
Здравствуйте, есть код. Выдает 2 ошибки: Cannot convert &quot;int**&quot; to &quot;int*&quot; Cannot convert &quot;int*&quot;...

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)'
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5...

7
Модератор
2639 / 1751 / 920
Регистрация: 16.10.2013
Сообщений: 5,067
Записей в блоге: 14
27.03.2020, 08:26 2
Вы используете статические массивы, требуется переход к динамическим.
1
2 / 2 / 0
Регистрация: 22.03.2020
Сообщений: 11
27.03.2020, 14:44  [ТС] 3
по заданию идут статические
Цитата Сообщение от long399 Посмотреть сообщение
Вы используете статические массивы, требуется переход к динамическим.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
27.03.2020, 15:19 4
Цитата Сообщение от Murlockk Посмотреть сообщение
int A[50][50]
Цитата Сообщение от Murlockk Посмотреть сообщение
vvod2m(A,
Цитата Сообщение от Murlockk Посмотреть сообщение
vvod2m(int *p,
объявлен духмерный массив и он передается в функцию
а функция просит одномерный
1
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
27.03.2020, 17:35 5
Цитата Сообщение от Murlockk Посмотреть сообщение
C
1
2
3
4
5
6
void vvod2m(int *p, int *n, int *m, char k)
{
  ...
            scanf("%d",&p[i][j]);
  ...
}
Написана бессмыслица. Почему параметр p объявлен как int *, а потом вы с ним пытаетесь работать через p[i][j]?
1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
27.03.2020, 22:27 6
Цитата Сообщение от Murlockk Посмотреть сообщение
void vvod2m(int *p, int *n, int *m, char k)
Замените первый параметр на int p[50][50]
1
2 / 2 / 0
Регистрация: 22.03.2020
Сообщений: 11
05.04.2020, 05:13  [ТС] 7
не сработало.
он первую ошибку выдаёт на n и m.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
05.04.2020, 08:18 8
Цитата Сообщение от Murlockk Посмотреть сообщение
не сработало.
Тогда покажите код, который не сработал.
1
05.04.2020, 08:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2020, 08:18
Помогаю со студенческими работами здесь

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй...

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int...

[C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int'
Всем привет! Пожалуйста , помогите , почему выдает ошибку Unit2.cpp(22): E2034 Cannot convert 'int...

Сannot convert ‘int (*)[10]’ to ‘int*’ for argument ‘4’ to ‘int
Все вроде правильно..И в визуале работает а на линуксе(код блок) не работает.. #include &quot;mpi.h&quot;...


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

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