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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 15:43     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #1
Помогите поправить код, а то выдаёт ошибки
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: для индекса требуется массив или указатель
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
28.02.2010, 16:48     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #2
Цитата Сообщение от kursant Посмотреть сообщение
error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
ошибка в том, что в определении функции первый параметр int а передаешь ты параметр int[][]
надо так
C++
1
void InputMatrixCurrent(int matrix[][], int size)
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 16:52     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #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];
                }
        }
}
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 16:53  [ТС]     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #4
Что-то не получается, пишет что скобки пустые!
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 16:54     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #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];
                }
        }
}
@KOT@
81 / 39 / 2
Регистрация: 29.01.2010
Сообщений: 386
28.02.2010, 16:58     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #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];
                }
        }
}
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 16:59  [ТС]     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #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;
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
28.02.2010, 17:22     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #8
Genius Ignat, так лучше.
Одна феня: зависимость от размера, только так на глобальном уровне можно подправить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2010, 17:31     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
Еще ссылки по теме:

C++ error C2664: невозможно преобразовать параметр
C++ error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл
C++ Невозможно преобразовать параметр из int в const char

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

Или воспользуйтесь поиском по форуму:
kursant
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 61
28.02.2010, 17:31  [ТС]     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' #9
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Genius Ignat, так лучше.
Одна феня: зависимость от размера, только так на глобальном уровне можно подправить.
А подскажите пожалуйста как сделать защиту от отрицательных чисел, пробелов и букв(русских и английских) при вводе cin >> currentMatrix;
Yandex
Объявления
28.02.2010, 17:31     error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
Ответ Создать тему
Опции темы

Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru