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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
#1

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' - C++

28.02.2010, 15:43. Просмотров 1226. Ответов 8
Метки нет (Все метки)

Помогите поправить код, а то выдаёт ошибки
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
void InputMatrixCurrent(int matrix, int size);
int _tmain(int argc, _TCHAR* argv[])
{   
    setlocale(LC_CTYPE,"Russian");
    const int matrixMaxSize = 5;
    int firstMatrix[matrixMaxSize][matrixMaxSize];
    int currentMatrix;
 
    cout << "Введите размер квадратной матрицы:";
    cin >> currentMatrix;
    cout << "Введите элементы первой матрицы:" << endl;
    InputMatrixCurrent(firstMatrix, currentMatrix);
    cin.get();
    return 0;
}
 
void InputMatrixCurrent(int matrix, int size)
{
    for(int i = 0; i < size; ++i)
    {
        for(int j = 0; j < size; ++j)
        {
            cout << "элемент "<<' '<<i<<' '<<j<<'\t';
            cin >> matrix[i][j];
        }
    }
}
ошибки
Ошибка
error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
error C2109: для индекса требуется массив или указатель
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 15:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' (C++):

error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" - C++
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include &lt;stdio.h&gt; #include...

error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл - C++
Подскажите пожалуйста как быть... в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит...

Исправить ошибку C2664: fcvt: невозможно преобразовать параметр из "int" в "int *" - C++
ПИшу програму перевод дробового числа с указанием количесв цифр после точки , с инт в чар !!!!Но выбивает ошибку !!! ...

Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []' - C++
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

выдаёт error C2440: =: невозможно преобразовать 'int' в 'int [100] - C++
Ввести информацию об абонентах телефонной станции: фамилия, телефон, улица. Распечатать список абонентов 65-й АТС, проживающих на улице...

Невозможно преобразовать параметр 1 из 'int [9]' в 'int' - C++
Что не так в коде? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; const int MAX = 9; int maxint(int); int main() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
28.02.2010, 16:48 #2
Цитата Сообщение от kursant Посмотреть сообщение
error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
ошибка в том, что в определении функции первый параметр int а передаешь ты параметр int[][]
надо так
C++
1
void InputMatrixCurrent(int matrix[][], int size)
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 16:52 #3
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
void InputMatrixCurrent(int *matrix, int size);
int _tmain(int argc, _TCHAR* argv[])
{       
        setlocale(LC_CTYPE,"Russian");
        const int matrixMaxSize = 5;
        int firstMatrix[matrixMaxSize][matrixMaxSize];
        //Размер уже задан в виде константы: matrixMaxSize
        cout << "Введите элементы первой матрицы:" << endl;
        InputMatrixCurrent(&firstMatrix[0][0], matrixMaxSize);
 
        cin.get();
        return 0;
}
 
void InputMatrixCurrent(int *matrix, int size)
{
    for(int i = 0; i < size; ++i)
        {
            for(int j = 0; j < size; ++j)
                {
                    cout << "элемент "<<' '<<i<<' '<<j<<'\t';
                        cin >> matrix[i*size+j];
                }
        }
}
1
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 16:53  [ТС] #4
Что-то не получается, пишет что скобки пустые!
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 16:54 #5
Вот что КОТ предложил.
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
void InputMatrixCurrent(int matrix[5][5], int size);
int _tmain(int argc, _TCHAR* argv[])
{       
        setlocale(LC_CTYPE,"Russian");
        const int matrixMaxSize = 5;
        int firstMatrix[matrixMaxSize][matrixMaxSize];
        //Размер уже задан в виде константы: matrixMaxSize
        cout << "Введите элементы первой матрицы:" << endl;
        InputMatrixCurrent(firstMatrix, matrixMaxSize);
 
        cin.get();
        return 0;
}
 
void InputMatrixCurrent(int matrix[5][5], int size)
{
    for(int i = 0; i < size; ++i)
        {
            for(int j = 0; j < size; ++j)
                {
                    cout << "элемент "<<' '<<i<<' '<<j<<'\t';
                        cin >> matrix[i][j];
                }
        }
}
0
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
28.02.2010, 16:58 #6
Genius Ignat, так лучше
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
const int matrixMaxSize = 5;
void InputMatrixCurrent(int matrix[5][5], int size);
int _tmain(int argc, _TCHAR* argv[])
{       
        setlocale(LC_CTYPE,"Russian");
        
        int firstMatrix[matrixMaxSize][matrixMaxSize];
                //Размер уже задан в виде константы: matrixMaxSize
        cout << "Введите элементы первой матрицы:" << endl;
        InputMatrixCurrent(firstMatrix, matrixMaxSize);
 
        cin.get();
        return 0;
}
 
void InputMatrixCurrent(int matrix[matrixMaxSize][matrixMaxSize], int size)
{
    for(int i = 0; i < size; ++i)
        {
            for(int j = 0; j < size; ++j)
                {
                    cout << "элемент "<<' '<<i<<' '<<j<<'\t';
                        cin >> matrix[i][j];
                }
        }
}
1
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 16:59  [ТС] #7
Цитата Сообщение от Genius Ignat Посмотреть сообщение
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
void InputMatrixCurrent(int *matrix, int size);
int _tmain(int argc, _TCHAR* argv[])
{       
        setlocale(LC_CTYPE,"Russian");
        const int matrixMaxSize = 5;
        int firstMatrix[matrixMaxSize][matrixMaxSize];
        //Размер уже задан в виде константы: matrixMaxSize
        cout << "Введите элементы первой матрицы:" << endl;
        InputMatrixCurrent(&firstMatrix[0][0], matrixMaxSize);
 
        cin.get();
        return 0;
}
 
void InputMatrixCurrent(int *matrix, int size)
{
    for(int i = 0; i < size; ++i)
        {
            for(int j = 0; j < size; ++j)
                {
                    cout << "элемент "<<' '<<i<<' '<<j<<'\t';
                        cin >> matrix[i*size+j];
                }
        }
}
А подскажите пожалуйста как сделать защиту от отрицательных чисел, пробелов и букв(русских и английских) при вводе cin >> currentMatrix;
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 17:22 #8
Genius Ignat, так лучше.
Одна феня: зависимость от размера, только так на глобальном уровне можно подправить.
0
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 17:31  [ТС] #9
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Genius Ignat, так лучше.
Одна феня: зависимость от размера, только так на глобальном уровне можно подправить.
А подскажите пожалуйста как сделать защиту от отрицательных чисел, пробелов и букв(русских и английских) при вводе cin >> currentMatrix;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2010, 17:31
Привет! Вот еще темы с ответами:

error C2440:невозможно преобразовать 'int' в 'int []' - C++
Собственно вот сам код, жирным выделена строка в которой Visual C++ 2008 показывает ошибку. Поясните кто может что я делаю не...

error C2664: невозможно преобразовать параметр - C++
Здравствуйте. Отправьте меня если что в другую тему, где это обсуждалось, но я не понимаю, в чем собственно дело void grouping(int n,...

error C2664:невозможно преобразовать параметр - C++
/*************************************************** * Программа: Квадратный трехчлен * * Лаб. работа: 5 ...

error C2664:невозможно преобразовать параметр - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;cstring&gt; #define q 250 struct sanat{ string Name; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.02.2010, 17:31
Ответ Создать тему
Опции темы

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