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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.80
ejk
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 81
#1

error C2664: невозможно преобразовать параметр - C++

25.05.2012, 21:02. Просмотров 3592. Ответов 21
Метки нет (Все метки)

Здравствуйте. Отправьте меня если что в другую тему, где это обсуждалось, но я не понимаю, в чем собственно дело

C
1
2
3
4
5
6
7
void grouping(int n, int m, int m1, int* num, float* mas, float** pt)
 
...
for(int i=0;i<N;i++){
        for(int j=0;j<3;j++)
        fscanf(file,"%d",&pt[i][j]);
    }
ругается, что error C2664: grouping: невозможно преобразовать параметр 6 из 'float [100][3]' в 'float **'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error C2664: невозможно преобразовать параметр (C++):

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; ...

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' - C++
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

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

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' - C++
Помогите поправить код, а то выдаёт ошибки #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; void...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.05.2012, 09:49 #16
Цитата Сообщение от ejk Посмотреть сообщение
void grouping(int n, int m, int m1, int* num, float* mas, float** pt)
а что вы в этой строке поменяли?! как была так и осталась.
ejk
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 81
26.05.2012, 12:42  [ТС] #17
Цитата Сообщение от antoha398 Посмотреть сообщение
как была так и осталась.
А что там нужно поменять?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.05.2012, 16:54 #18
я ведь уже писал
error C2664: невозможно преобразовать параметр

в функции grouping вместо float **pt надо поставить float pt[Nmax][3]
ejk
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 81
26.05.2012, 17:02  [ТС] #19
Теперь она запускается/компилируется. Только все равно выдает ошибку и не делает то, что нужно
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.05.2012, 17:06 #20
Цитата Сообщение от ejk Посмотреть сообщение
Только все равно выдает ошибку и не делает то, что нужно
ну это уже другой вопрос

проверь это:
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 <stdlib.h>
#include <math.h>
#define Nmax 100
//void f(float pt[Nmax][Nmax]){}
void grouping(int n, int m, int m1, int* num, float* mas, float pt[Nmax][3])//num -- массив номеров точек, которые уже вошли в комбинацию, m1 -- их количество
{
    int tmp=0;
    if(m1==0)
    {
        for(int i=0; i<n-m+1; i++)
        {
            num[0]=i;
            grouping(n,m,1,num,mas,pt);
        }
    }
    else if(m==m1)
    {
        float x1=0,x2=0,y1=0,y2=0,z1=0,z2=0,mas1=0,mas2=0;
        for(int i=0; i<n; i++)
        {
            for(int j=0;j<3;j++){
            for(int k=0; k<m1; k++)//Здесь ищем число i в массиве num
            {
                tmp = num[k];
                if(i==tmp)//Если нашли
                {
                    
                    x1+=mas[i]*pt[i][j];
                    y1+=mas[i]*pt[i][j];
                    z1+=mas[i]*pt[i][j];
                    mas1+=mas[i];
                }               
                else
                {
                    x2+=mas[i]*pt[i][j];
                    y2+=mas[i]*pt[i][j];
                    z2+=mas[i]*pt[i][j];
                    mas2+=mas[i];
                }
            }
        }
        }
        x1/=mas1;
        x2/=mas2;
        y1/=mas1;
        y2/=mas2;
        z1/=mas1;
        z2/=mas2;
        printf("%f %f %f", x1,y1,z1);
        printf("\n");
        printf("%f %f %f", x2,y2,z2);
        printf("\n");
    }
    else
    {
        int last=num[m1-1];//У нас частицы упорядочены, и если у нас уже была комбинация из 1,3,4 частицы, например, то комбинация из 1,4,3 нас уже не интересует, потому новые частицы имеет смысл присоейдинять к комбинации только начиная с num[m1-1]
        for(int i=last+1; i<n-m+m1+1; i++)//Если номер будет больше, чем n-m+m1+1, то опять-таки комбинации будут повторяться
        {
            num[m1]=i;
            grouping(n,m,m1+1,num,mas,pt);
        }
    }
    
}
 
 
//=======================MAIN===============
int main()
{
    float pt[Nmax][3];
    //f(pt);
    float mas[Nmax];
    int N=0;//Количество точек
    FILE* f=fopen("tochki.txt","r");
    fscanf(f,"%d",&N);
    fclose(f);
    FILE* file=fopen("3tochki.txt","r");
    for(int i=0;i<N;i++){
        for(int j=0;j<3;j++)
        fscanf(file,"%f",&pt[i][j]);
    }
    fclose(file);
    FILE* fil=fopen("3massa.txt","r");
    for(int i=0; i<N; i++)
        fscanf(fil,"%f",&mas[i]);
    fclose(fil);
    //int n1=(N+1)/2;
    for(int i=0; i<N; i++)
    {
        int* num=new int[i];
        grouping(N,i,0,num,mas,pt);
    }
}
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
26.05.2012, 17:06 #21
Если вы будете считать, что тут собрание экстрасенсов и код ошибки вместе с исходником мы зреем в каком-нибудь астрале, то и обслуживани будет обходиться как приём у подобных гадалок.
ejk
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 81
26.05.2012, 17:16  [ТС] #22
К сожалению, да. Спасибо большое за помощь!

Добавлено через 2 минуты
Проверила код, все равно такая же штука. Компилируется, но ничего не делает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 17:16
Привет! Вот еще темы с ответами:

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &' - C++
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace std; int main() { string...

error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" - C++
при компиляции выдаёт ошибку указанную в теме, код: void Clab_12_2Dlg::OnClickedAri() { // TODO: добавьте свой код обработчика...

Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *" - C++
почему выдаёт ошибку? int RegClass(WNDPROC Proc,LPCTSTR szName,UINT brBackground){ WNDCLASSEX wc; ...

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *" - C++
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p = strtok(s.c_str(), ' '); не нравится такое...


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

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

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