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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
#1

cannot convert parameter 1 from - C++

25.10.2012, 00:37. Просмотров 1291. Ответов 10
Метки нет (Все метки)

Доброй ночи, вот написал програмку, не пойму почему ругается?
Если не ошибаюсь нужно выделить память под массив? Но как это правильно сделать? Если не сложно исправьте ошибку плиз.
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
#include <iostream>
#include <vector>
#include <iomanip>
#include <cstdlib>
using namespace std;
void dno(int **Matrix,int n,int m)
{int Check = 0;int collNumber = 0;
    cout << "First coll's number with zero element: ";
    for(int j = 0; j < n; j++)
            for(int i = 0; i < m; i++)
            {
                    if(!Check)
                              if(!Matrix[i][j])
                              {
                                               Check = 1;
                                               collNumber = j;
                              }
            }
    cout << collNumber + 1 << endl;
}
void sort(int **Matrix, int n,int m)
{int i;
    for(i=0; i<n-1; i++)
    {vector<int> A(n, 0);
int i_min = i;
        for(int j=i+1; j<m; j++)
            if(A[i_min]<A[j])
                i_min=j;
        swap(A[i_min], A[i]);
        for(j=0; j<n; j++)
            swap(Matrix[i_min][j], Matrix[i][j]);
    }
   cout << "New matrix: " << std::endl;
    for(i = 0; i < n; i++)
    {
            for(int j = 0; j < n; j++)
            {
                    cout << setw(4) << Matrix[i][j]<< " ";
            }
            cout << endl;
    }   
}
int main ()
{
    const int n = 5;
    const int m =5;
    int Matrix[n][m],  A[n]={0}, i_min;
    
    cout << "Matrix: " << endl;
    for(int i = 0; i < n; i++)
    {
            for(int j = 0; j < n; j++)
            {
                    cout << setw(4) << (Matrix[i][j] = rand() % 4-3);
                    if(Matrix[i][j]<0 && Matrix[i][j]%2==0)
                        A[i]+=Matrix[i][j];
            }
            cout <<endl;
    }
    dno(Matrix,n,m);
    sort(Matrix,n,m);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2012, 00:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос cannot convert parameter 1 from (C++):

Ошибка: cannot convert parameter - C++
Есть кусок кода (писал спец.) USES_CONVERSION; static char szBuffer; sprintf( szBuffer, _T('%d'), val );При компиляции...

Cannot convert parameter 1 from 'double (__cdecl *) - C++
#include &quot;MyModule.h&quot; //--------------------------------------------------------- ///0,432549860229146 2221 //Функция: ...

Cannot convert parameter from 'const wchar_t [20]' to 'LPCSTR' - C++
Взял первый пример из книги и не мого скомпилировать. Пишу в Visual Studio 2008 #include &lt;windows.h&gt; LRESULT CALLBACK WndProc(HWND,...

Ошибка: 'fputc' : cannot convert parameter 1 from 'char *' to 'int' - C++
Помогите разобраться Я начинающий программист, не судите строго:- int _tmain() { char *a; a=&quot;TTTT+&quot;; FILE *fp; ...

cannot convert parameter 1 from 'int' to 'std::string &' - C++
string kolvo(string &amp;S, int &amp;k) { unsigned int i; for(i=1; i&lt;S.length(); i++) if(S=='B' &amp;&amp; S==' ') k=k+1; } ...

Исправить ошибку cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR' (CopyFile) - C++
Народ, помогите, не могу разобраться с &quot;CopyFile(LPCTSTR fromName, LPCTSTR toName, BOOL failIfExists);&quot;. Вопрос таков: почему при...

10
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
25.10.2012, 00:50 #2
Цитата Сообщение от Tw3ak Посмотреть сообщение
cannot convert parameter 1 from
int (*)[5] to int ** ?
1
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
25.10.2012, 00:58  [ТС] #3
Цитата Сообщение от gray_fox Посмотреть сообщение
int (*)[5] to int ** ?
Cannot convert parameter 1 from 'int [5][5]' to 'int ** '
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Вот полная ошибка
Ошибки в строчках 60-61
0
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,643
Записей в блоге: 3
Завершенные тесты: 1
25.10.2012, 01:00 #4
C++
1
2
template<class M>
void dno(M Matrix,int n,int m)
1
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
25.10.2012, 01:04  [ТС] #5
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
template<class M>
void dno(M Matrix,int n,int m)
Нене, шаблон нельзя, нужно пока что только Функция. В шаблон уже сам переделаю, потом.

Добавлено через 1 минуту
Даже если из програмы убрать m, т.к. квадратная матрица, и все сделать через n, та же ошибка будет
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
25.10.2012, 01:05 #6
Tw3ak, просто формальные и фактические аргументы у ф-ий не совпадают, массив и указатель не оно и то же. Меняйте тип переменной Matrix или или тип в ф-ии:
C++
1
2
template<int n, int m>
void dno(int (&Matrix)[n][m])
1
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
25.10.2012, 01:08  [ТС] #7
Цитата Сообщение от gray_fox Посмотреть сообщение
Tw3ak, просто формальные и фактические аргументы у ф-ий не совпадают, массив и указатель не оно и то же. Меняйте тип переменной Matrix или или тип в ф-ии:
C++
1
2
template<int n, int m>
void dno(int Matrix[n][m])
Я пробовал меня тип переменной Matrix На Double, не помогло, я не могу использовать шаблон вместо функции, т.к. это 2 разные лабораторные работы...
0
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,643
Записей в блоге: 3
Завершенные тесты: 1
25.10.2012, 01:10 #8
Тогда выделяйте Matrix динамически в main:
C++
1
2
3
4
    int ** Matrix;
    Matrix=new int*[n];
     for(int i=0;i<n;++i)
         Matrix[i]=new int[m];
потом только не забудьте
C++
1
2
3
     for(int i=0;i<n;++i)
         delete Matrix[i];
     delete Matrix;
1
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
25.10.2012, 01:14  [ТС] #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Тогда выделяйте Matrix динамически в main:
C++
1
2
3
4
    int ** Matrix;
    Matrix=new int*[n];
     for(int i=0;i<n;++i)
         Matrix[i]=new int[m];
потом только не забудьте
C++
1
2
3
     for(int i=0;i<n;++i)
         delete Matrix[i];
     delete Matrix;
я ничего не соображаю уже, оформил через шаблоны, может препод не заметит, сдам обе лабы через шаблоны, а скажу что это ф-ия и шаблон, тем более что она не смотрит.
Всем спасибо.
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
25.10.2012, 01:15 #10
Тогда можно попробывать так вызывать:
C++
1
2
int * p = &Matrix[0][0];
dno(&p, n, m);
но я вообще не уверен, что это корректно. Лучше выделить память под Matrix на куче.
1
Tw3ak
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 15
25.10.2012, 01:17  [ТС] #11
Цитата Сообщение от gray_fox Посмотреть сообщение
Тогда можно попробывать так вызывать:
C++
1
2
int * p = &Matrix[0][0];
dno(&p, n, m);
но я вообще не уверен, что это корректно. Лучше выделить память под Matrix на куче.
У мня еще в прошлом году была та же самая проблема с функцией, а с шаблонами все ок, универ убогий, прошел год, ставят опять те же лабы... идиоты
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 01:17
Привет! Вот еще темы с ответами:

Error C2664: 'sprintf' : cannot convert parameter 2 from 'float' to 'const char *' - C++
Читаю в Интернете пишут о том что нужно явное преобразование типов, подскажите, пжл, как его произвести. PS: если оно тут...

Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' - C++
выдает вот такую ошибку - Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' использую visual...

Cannot convert parameter 1 from 'char' to 'char []' - C++
#include &lt;iostream&gt; using namespace std; const int MAX=20; class base { public: virtual char sry(char str, char s)=0; }; ...

Ошибка missing default parameter for parameter - C++
вот программка #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int n,i,d; float *m=new float;//динамическое...


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

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

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