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

[C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int'

01.06.2019, 15:45. Показов 3650. Ответов 7

Author24 — интернет-сервис помощи студентам
Всем привет! Пожалуйста , помогите , почему выдает ошибку [C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int' ?. Мне нужно организовать вычисление массива z, который зависит от значений signX(он в свою очередь зависит от x[i]) и signY(зав. от y[i]) вычисление каждого нужно закинуть в функцию. Недавно начал изучать C++, очень нужна ваша помощь!
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
83
84
85
86
87
88
89
90
91
92
93
94
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int ruka(int signX=0,int signY=0); // Функция для ручного ввода массива
int signX(int n,int x[20]); // Функция для вычисления signX
int signY(int n, int y[20]); // Функция для вычисления signY
 
int main(void) {
    int n, c, d;
    int i=0;
    int x[20]; int y[20], z[20];
    printf("Vvedite n= "); scanf("%d", &n);
    char answer;
    cout << "Kak sformirovat' massivy x,y ? 1-vruchnuyu, 2-sluchayno : "; // Выбор способа формирования массива
    cin >> answer;
    printf("\n\n");
    if (answer == '1') {
        cout << ruka(signX,signY);
    }
    else if (answer == '2') {
        srand(time(NULL));
        for (i = 0; i < n; i++) {
            x[i] = rand() % 21 - 10;
        }
        cout << "x= { ";
        for (i = 0; i < n; i++)
        {
            cout << x[i] << " ";
        }
        cout << "}";
        printf("\n\n");
        for (i = 0; i < n; i++) {
            y[i] = rand() % 21 - 10;
        }
        cout << "y= { ";
        for (i = 0; i < n; i++)
        {
            cout << y[i] << " ";
        }
        cout << "}";
    }
    printf("\n\n");
    printf("z= { ");
    for (i = 0; i < n; ++i) {
        if (x[i] < 0) { c = -1; }
        else if (x[i] > 0) { c = 1; }
        else { c = 0; };
        if (y[i] < 0) { d = -1; }
        else if (y[i] > 0) { d = 1; }
        else { d = 0; };
        z[i] = (c + d) * (x[i] + y[i]);
        printf("%d ", z[i]);
    }
    printf("}");
}
 
int ruka(int signX=0,int signY=0) {
        cout << signX;
        printf ("\n\n");
        cout << signY;
    return signX,signY;
}
 
 
 int signX(int n,int x[20]);{
       for (int i = 0; i < n; i++) {
        cout << "x[" << i + 1 << "]" << ": ";
        cin >> x[i];
    }
    cout << "\nx= { ";
    for (int i = 0; i < n; i++) {
        cout << x[i] << " ";
    }
    cout << "}";
        return x[i];
 }
 
 
 int signY(int n,int y[20]); {
   for (int i = 0; i < n; i++) {
        cout << "y[" << i + 1 << "]" << ": ";
        cin >> y[i];
    }
    cout << "\ny= { ";
    for (int i = 0; i < n; i++) {
        cout << y[i] << " ";
    }
    cout << "}";
        return y[i];
 }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2019, 15:45
Ответы с готовыми решениями:

Ошибка при компиляции 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...

Какая из этих функций 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...

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

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H ...

7
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
01.06.2019, 16:08 2
Цитата Сообщение от xammat Посмотреть сообщение
if (answer == '1') {
* * * * cout << ruka(signX,signY);
* * }
signX и signY - функции, надо вызывать их с параметрами cout << ruka(signX(n, x), signY(n, y));
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
01.06.2019, 17:15 3
xammat, напишите условие задачи
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 6
01.06.2019, 18:27  [ТС] 4
Добавлено через 7 минут
Цитата Сообщение от Yetty Посмотреть сообщение
xammat, напишите условие задачи
Сформировать массив z=z[i] :
z[i]=(signX[i]+signY[i])sign(x[i]+y[i]),
где signX[i]= -1 при x<0, 0 при x=0, +1 при x>0. Размерность n<=20
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
01.06.2019, 18:56 5
Лучший ответ Сообщение было отмечено xammat как решение

Решение

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void Set(int*a, int n)
{
    for (int i = 0; i < n; i++)
      a[i]=rand()%19 - 9;      
}    
    
int sign (int e)
{
    if (e<0) return -1;
    else if (e==0) return 0;
    return 1;
} 
 
void Print(int*a, int n)
{
    for (int i = 0; i < n; i++)    
      cout << a[i] << " ";      
    cout << "\n";      
}  
 
int main()
{
    srand((int)time(0));
    int n;
    cout << "n="; cin >> n;
 
    int*x = new int[n];
    int*y = new int[n];
    int*z = new int[n];
    
    Set(x,n);
    cout << "Matrix x:\n";
    Print (x,n);
    Set(y,n);
    cout << "Matrix y:\n";
    Print (y,n);
    for (int i = 0; i < n; i++)
    z[i]=(sign(x[i])+sign(y[i]))*sign(x[i]+y[i]);
    cout << "Matrix z:\n";
    Print (z,n);
    delete[]x;
    delete[]y;
    delete[]z;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 6
01.06.2019, 19:05  [ТС] 6
Огромная благодарность!!!!
Если вам не трудно, помогите пожалуйста с частью кода, где нужно формировать массивы X и Y вручную. Тоже функцией.. Т.е. у меня в программе нужно предусмотреть рандомный вывод массивов Х и У и вручную.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
02.06.2019, 14:33 7
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void Random(int*a, int n)
{
    for (int i = 0; i < n; i++)
      a[i]=rand()%19 - 9;      
}    
 
void Keyboard(int*a, int n)
{    
    for (int i = 0; i < n; i++)
      cin >> a[i];
}       
    
int sign(int e)
{
    if (e<0) return -1;
    else if (e==0) return 0;
    return 1;
} 
 
void Print(int*a, int n)
{
    for (int i = 0; i < n; i++)    
      cout << setw(2) << a[i] << " ";      
    cout << "\n";      
}  
 
int main()
{
    srand((int)time(0));
    int n, k, p;
    cout << "n="; cin >> n;
 
    int*x = new int[n];
    int*y = new int[n];
    int*z = new int[n];
    
    do
    {
    p=0;
    cout << "Make a choice: 1 - Random, 2 - Keyboard: "; cin >> k;
        
       if (k==1) 
           {           
           Random(x,n);           
           Random(y,n);
           }
       else if (k==2) 
           {
           cout << "Enter " << n << " integer elements matrix x:\n";   
           Keyboard(x,n);
           cout << "Enter " << n << " integer elements matrix y:\n";
           Keyboard(y,n);
           }    
       else 
           {
           p=1;
           cout <<"Enter error. Repeat please...\n";
           }
    }
    while (p);
    
    cout << "Matrix x:\n";
    Print (x,n);    
    cout << "Matrix y:\n";
    Print (y,n);
    for (int i = 0; i < n; i++)
    z[i]=(sign(x[i])+sign(y[i]))*sign(x[i]+y[i]);
    cout << "Matrix z:\n";
    Print (z,n);
    delete[]x;
    delete[]y;
    delete[]z;
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 12.05.2019
Сообщений: 6
02.06.2019, 15:59  [ТС] 8
Цитата Сообщение от Yetty Посмотреть сообщение
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void Random(int*a, int n)
{
    for (int i = 0; i < n; i++)
      a[i]=rand()%19 - 9;      
}    
 
void Keyboard(int*a, int n)
{    
    for (int i = 0; i < n; i++)
      cin >> a[i];
}       
    
int sign(int e)
{
    if (e<0) return -1;
    else if (e==0) return 0;
    return 1;
} 
 
void Print(int*a, int n)
{
    for (int i = 0; i < n; i++)    
      cout << setw(2) << a[i] << " ";      
    cout << "\n";      
}  
 
int main()
{
    srand((int)time(0));
    int n, k, p;
    cout << "n="; cin >> n;
 
    int*x = new int[n];
    int*y = new int[n];
    int*z = new int[n];
    
    do
    {
    p=0;
    cout << "Make a choice: 1 - Random, 2 - Keyboard: "; cin >> k;
        
       if (k==1) 
           {           
           Random(x,n);           
           Random(y,n);
           }
       else if (k==2) 
           {
           cout << "Enter " << n << " integer elements matrix x:\n";   
           Keyboard(x,n);
           cout << "Enter " << n << " integer elements matrix y:\n";
           Keyboard(y,n);
           }    
       else 
           {
           p=1;
           cout <<"Enter error. Repeat please...\n";
           }
    }
    while (p);
    
    cout << "Matrix x:\n";
    Print (x,n);    
    cout << "Matrix y:\n";
    Print (y,n);
    for (int i = 0; i < n; i++)
    z[i]=(sign(x[i])+sign(y[i]))*sign(x[i]+y[i]);
    cout << "Matrix z:\n";
    Print (z,n);
    delete[]x;
    delete[]y;
    delete[]z;
system("pause");
return 0;
}
Огромная благодарность!! Неимоверно выручили!
0
02.06.2019, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2019, 15:59
Помогаю со студенческими работами здесь

E2034 Cannot convert 'int *' to 'int'
Помогите разобраться,почему вылазит ошибка Unit1.cpp(34): E2034 Cannot convert 'int' to 'int *'...

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;algorithm&gt; #include&lt;ctime&gt;...

[Linker error] undefined reference to `sterling(int, int, int)'
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int...

[Linker Error] Unresolved external 'Sort(int near*near ,int, int)
не могу понять в чем ошибка при компиляции ошибок не выдает при запуске программы - выдает эту...

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

[BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)'
#include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream.h&gt; #include&lt;windows.h&gt;...


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

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