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

right-hand operand

26.12.2012, 18:02. Показов 998. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <cmath>
#include <ctime>
 
using namespace std;
const int n=3;
template<class T>T after_C(T *m,int n)
{int C,i;int jMax=0;
int counter=0;
    cout<<"vvedite C : ";cin>>C;cout<<endl;
    for(i=0;i<n;i++)
    {
        if(m[i]>C)
            counter++;
    }
    cout<<"kol-vo elementov bol'we C: "<<counter<<endl;
    cout<<endl;
return 0;}
template<class T>T pr(T *m, int n )
{float pr=1;int i; float jMax=0;
    int counter = 0;
for(i = 0; i < n; i++)
        if(abs(m[i]) > jMax){
                counter = i;
                jMax = abs(m[i]);
        }
float mult = 1;
for(i = counter+1; i < n; i++)
        mult *= m[i];
if(counter == n-1)
    mult = 0;
cout << "Pr. elementov posle max po modulyu : " << mult;
cout<<endl;
 
return 0;}
template<class T>T sort(T *m, int n)
{int i;
        cout<<"Otsortirovanii massiv :";
            for(i=0;i<n;i++)
            { if(m[i]<0)
            cout<<m[i]<<'\t';}
            for(i=0;i<n;i++)
            {
                if(m[i]>=0)
                    cout<<m[i]<<'\t';
            }
return 0;}
int main ()
{
    int i; int m[n];float *m1[n]; double *m2[n];
    for(i=0;i<n;i++){
    cout<<"vvedite massiv: ";
    cin>>m[i];}
    cout<<endl;
    for(i=0;i<n;i++){
        cout<<m[i]<<'\t';}
    cout<<endl;
 
    after_C(m,n);
    pr(m,n);
    sort(m,n);
        for(i=0;i<n;i++){
    cout<<"vvedite massiv: ";
    cin>>m1[i];}
    cout<<endl;
    for(i=0;i<n;i++){
        cout<<m1[i]<<'\t';}
    cout<<endl;
 
    after_C(m1,n);
    pr(m1,n);
    sort(m1,n);
        for(i=0;i<n;i++){
    cout<<"vvedite massiv: ";
    cin>>m2[i];}
    cout<<endl;
    for(i=0;i<n;i++){
        cout<<m2[i]<<'\t';}
    cout<<endl;
 
    after_C(m2,n);
    pr(m2,n);
    sort(m2,n);
    return 0;
    }
Хай всем. Народ выдает следующие ошибки программа:
binary '>>' : no operator defined which takes a right-hand operand of type 'float *' (or there is no acceptable conversion)
binary '>>' : no operator defined which takes a right-hand operand of type 'double *' (or there is no acceptable conversion)
в строках cin>>m1[i] cin>>m2[i];Хелп что не так сделал:
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2012, 18:02
Ответы с готовыми решениями:

No operator found which takes a right-hand operand
Кто подскажет в чем ошибка? #include &lt;iostream&gt; #include &lt;vector&gt; class LongNumber {...

Binary '==' no operator found which takes a left-hand operand of type 'T'
Здравствуйте. Пытаюсь сравнить элемент массива с объектом,который я создаю в мейн и компилятор...

Ошибка binary '=' : no operator found which takes a right-hand operand of type
Ошибка Erro1 error C2679: binary '=' : no operator found which takes a right-hand operand of type...

Error C2679: binary '>>': no operator found which takes a right-hand operand of type
нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с...

11
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:05 2
У тебя m1 и m2 массивы указателей, измени на обычные массивы и всё будет работать.
1
0 / 0 / 1
Регистрация: 12.10.2011
Сообщений: 37
26.12.2012, 18:16  [ТС] 3
Цитата Сообщение от David Sylva Посмотреть сообщение
У тебя m1 и m2 массивы указателей, измени на обычные массивы и всё будет работать.
но мне то нужно чтобы программа работа по отдельности с int float double... а если я напишу cin>>m[i] то это инт полуится
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:18 4
Цитата Сообщение от ra4ok Посмотреть сообщение
но мне то нужно чтобы программа работа по отдельности с int float double... а если я напишу cin>>m[i] то это инт полуится
Ну думай как поменять, ты хочешь записать целое число в массив указателей, так нельзя.
1
0 / 0 / 1
Регистрация: 12.10.2011
Сообщений: 37
26.12.2012, 18:19  [ТС] 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include<iostream>
#include<iomanip>
#include <ctime> 
using namespace std;
 
 
template<class T>
void function(T** a);
 
int main()
{
 
     setlocale(.1251,"");
     int tmp;
     cout << "Меню\n1-int\n2-double\n3-float\n";
     cin >> tmp;
     switch(tmp)
     {
     case 1:
         {
         int** a1 = NULL;
         function<int>(a1);
         break;
         }
     case 2:
         {
         double** a2 = NULL;
         function<double>(a2);
         break;
         }
     case 3:
         {
            float** a3 = NULL;
            function<float>(a3);
            break;
         }
     default:
         {
             cout << "Ошибка!" << endl;
         }
     }
     return 0;
 }
 
template<class T>
void function(T** a)
{
    int stb,str;
    bool fl = false;
    cout << "Введите количество строк : "; cin >> str;
    cout << "Введите количество столбцов : "; cin >> stb;
 
    a = new T* [stb];
 
    for(int i = 0; i < stb; i++)
        a[i] = new T[str];
         
    int stolb = 0;
 
cout << "Введите массив :"<< endl;
 
    for(int i = 0; i < stb; i ++)
    {
        for(int j = 0; j < str; j++)
        {
            cin>>a[i][j]; 
        }
    }
 
    cout << "Ваш массив "<< endl;
    for(int i = 0; i < stb; i ++)
    {
        for(int j = 0; j < str; j++)
        {
            cout <<setw(4)<<  a[i][j];
        }
        cout << endl;
    }
 
    for(int i = 0; i < stb; i ++)
    {
        for(int j = 0; j < str; j++)
        {
            if(a[i][j] == 0)
            {
                stolb = j;
                fl = true;
                break;
            }
 
        }
         
    }
 
 
    if(fl)
        cout <<"Столбец : " << stolb +1 << endl;
    else 
        cout << "Нет нулевых элементов!" << endl;
 
T* sum = new T[str];
 
for(int i  = 0; i < str; i++)
{
    sum[i] = 0;
    for(int j = 0; j  < stb; j++)
    {
        if((a[i][j] < 0)&&(int(a[i][j])%2 == 0))
            sum[i] += a[i][j];
 
    }
    cout<<"Характеристика "<<i+1<<" столбца равна"<<sum[i]<<endl;
}
 
 
 
cout << endl;
 
T buf_sum;
 
int nmin; T buf_a;
 
for(int i = 0; i < stb - 1; i++)
{
    nmin = i;
    for(int j = i+1; j < stb; j++)
        if(sum[j] > sum[nmin]) nmin = j;
 
    buf_sum = sum[i]; sum[i] = sum[nmin]; sum[nmin] = buf_sum;
 
    for(int j = 0; j < stb; j++)
    {
        buf_a = a[i][j]; a[i][j] = a[nmin][j]; a[nmin][j] =buf_a;
    }
 
}
 
cout << "Упорядоченный масссив :" << endl;
    for(int i = 0; i < stb; i ++)
     {
         for(int j = 0; j < str; j++)
         {
             cout <<setw(4) <<  a[i][j];
         }
         cout << endl;
     }
}
чутка другая программа смысл тот же...
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:20 6
Цитата Сообщение от ra4ok Посмотреть сообщение
чутка другая программа смысл тот же..
Ну да.
1
0 / 0 / 1
Регистрация: 12.10.2011
Сообщений: 37
26.12.2012, 18:22  [ТС] 7
Цитата Сообщение от David Sylva Посмотреть сообщение
Ну да.
а почему тогда не хочет с одномерными работать??
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:23 8
Цитата Сообщение от ra4ok Посмотреть сообщение
а почему тогда не хочет с одномерными работать??
Не понял, вопрос.
1
0 / 0 / 1
Регистрация: 12.10.2011
Сообщений: 37
26.12.2012, 18:24  [ТС] 9
Цитата Сообщение от David Sylva Посмотреть сообщение
Не понял, вопрос.
1ый код, это одномерный массив, 2ой код это двумерный, и 2ой работает.

Добавлено через 27 секунд
или я что то не так написал?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:25 10
Честно не смотрел, ни первый код, ни второй, просто показал тебе в чём ошибка.
1
0 / 0 / 1
Регистрация: 12.10.2011
Сообщений: 37
26.12.2012, 18:27  [ТС] 11
Цитата Сообщение от David Sylva Посмотреть сообщение
Честно не смотрел, ни первый код, ни второй, просто показал тебе в чём ошибка.
посмотрите код пожалуйста, и что именно мне исправить?? если напишу вместо m1 m2 просто m, работать массив начнет же только с int?
В кратце задание, программа рабочая полностью, за исключением того, что нужно сделать так чтобы, программа отдельно работала с int float double
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
26.12.2012, 18:30 12
Я тебе объясняю, сделай просто массивы float m1[n], double m2[n] и всё будет работать.
1
26.12.2012, 18:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2012, 18:30
Помогаю со студенческими работами здесь

Ошибка: error C2679: binary '<<' : no operator found which takes a right-hand operand of type
Нужно создать класс List для представления простого списка. Подскажите, почему появляется такая...

no operator found which takes a right/left-hand operand of type "AR"
Нашел на форуме исходник программы, собрал, но выдает ошибку описанную выше #include &lt;iostream&gt;...

Ошибка "binary '==': no operator found which takes a left-hand operand of type"
while (currentNode != endNode) { nextNode = path; nextNode1 = path; takeRoute.x =...

Исправить ошибку "error C2679: binary '*' : no operator found which takes a right-hand operand of type"
matiza.h #pragma once template &lt;typename N&gt; class matriza { protected: int stroka; N...


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

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