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

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

Войти
Регистрация
Восстановить пароль
 
UME
2 / 2 / 1
Регистрация: 14.01.2014
Сообщений: 68
#1

ERROR with float - C++

07.02.2014, 19:01. Просмотров 229. Ответов 6
Метки нет (Все метки)

Здравствуйте.. задача про нахождение общего сопротивления для параллельного и последовательного соединений(здесь все на кыргызском), но дело не в этом, а в том что тут какая то ошибка с float, я никак не пойму... с динамическими массивами знаком поверхностно...

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
#include <iostream>
 
using namespace std;
 
float udaalash(float,int);
 
float jarysh(float,int);
 
main(){
int n;
cout <<"Karshylyktardyn sanyn jaz: ";
cin >> n;
 
float *R;
R = new float [n];
 
cout << "Karshylyktyn maanilerin jaz: \n";
 
for(int i=1;i<=n;i++)
{
    cout<< "R("<<i<<"): ";
    cin >> R[i];
}
 
cout << "Udaalash tutashtyruudagy jalpy karshylyk = "
     << udaalash(R,n) << endl;
cout << "jarysh tutashtyruudagy jalpy karshylyk = "
     << jarysh(R,n) << endl;
 
//delete R[n];
 
return 0;
}
float udaalash(float *R, int n)
{
float R_jalpy = 0;
for(int i=0;i<n;i++)
R_jalpy += R[i];    
 
return R_jalpy;
}
float jarysh(float *R, int n)
{
float R_jalpy = 0, alym, bolum;
for(int i=0;i<n;i++)
   {
    alym *= R[i];
    bolum += alym/R[i];
    R_jalpy += alym/bolum;
   }
return R_jalpy;
}
проблема в этих строках:
C++
1
2
3
4
cout << "Udaalash tutashtyruudagy jalpy karshylyk = "
     << udaalash(R,n) << endl;
cout << "jarysh tutashtyruudagy jalpy karshylyk = "
     << jarysh(R,n) << endl;
и про delete R[n];
я это где то видел и там говорилось что это высвобождает память или тому подобное. Кто знает, поясните
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 19:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ERROR with float (C++):

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int) - C++
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй подпрограме.Извиниет за ошибки.Не владею руским.Помогите...

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing - C++
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; float f1(float x)/*vira*enie 1*/ {return (x*cos(x))/(1+ pow(x,2));} ...

[Error] expected primary-expression before 'float' ребята, как исправить - C++
#include &lt;iostream&gt; #include&lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;cstdlib&gt; #include&lt;locale.h&gt; using namespace std; void...

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

Error: no matching function for call to 'tan(float&, int)' - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { float x,A,Z,B,Betta, *a; int n,...

Error C2296: %: недопустимо, левый операнд имеет тип "float" - C++
Пожалуйста помогите исправить ошибку: error C2296: %: недопустимо, левый операнд имеет тип &quot;float&quot;. Задание: 1.Создание числовой...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
07.02.2014, 19:05 #2
ошибка в объявлении должно быть так
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
#include <iostream>
 
using namespace std;
 
float udaalash(float*,int);
float jarysh(float*,int);
 
int main(){
int n;
cout <<"Karshylyktardyn sanyn jaz: ";
cin >> n;
 
float *R;
R = new float [n];
 
cout << "Karshylyktyn maanilerin jaz: \n";
 
for(int i=1;i<=n;i++)
{
    cout<< "R("<<i<<"): ";
    cin >> R[i];
}
 
cout << "Udaalash tutashtyruudagy jalpy karshylyk = "
     << udaalash(R,n) << endl;
cout << "jarysh tutashtyruudagy jalpy karshylyk = "
     << jarysh(R,n) << endl;
 
delete R[n];
 
return 0;
}
float udaalash(float *R, int n)
{
float R_jalpy = 0;
for(int i=0;i<n;i++)
R_jalpy += R[i];    
 
return R_jalpy;
}
float jarysh(float *R, int n)
{
float R_jalpy = 0, alym, bolum;
for(int i=0;i<n;i++)
   {
    alym *= R[i];
    bolum += alym/R[i];
    R_jalpy += alym/bolum;
   }
return R_jalpy;
}
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,219
Завершенные тесты: 1
07.02.2014, 19:08 #3
Индексы массивов начинаются с нуля и заканчиваются n-1
C++
1
2
3
4
5
for(int i=0;i<n;i++)
{
    cout<< "R("<<i<<"): ";
    cin >> R[i];
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
float jarysh(float *R, int n)
{
   float R_jalpy = 0, alym=1., bolum=0;
   for(int i=0;i<n;i++)
   {
       alym *= R[i];
       bolum += alym/R[i];
       R_jalpy += alym/bolum;
   }
   return R_jalpy;
}
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
07.02.2014, 19:09 #4
Цитата Сообщение от zss Посмотреть сообщение
Индексы массивов начинаются с нуля и заканчиваются n-1
А вот это я проглядел вы правы плюс это ко всему
UME
2 / 2 / 1
Регистрация: 14.01.2014
Сообщений: 68
07.02.2014, 19:23  [ТС] #5
теперь понял...всем спасибо
но вот delete не работает
и вообще, что он делает?
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16695 / 6621 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
07.02.2014, 19:28 #6
вместо
C++
1
delete R[n];
надо
C++
1
delete [] R;
З.Ы. Заглавными буквами обычно обозначают константы, не надо путать других программистов..
Цитата Сообщение от UME Посмотреть сообщение
и вообще, что он делает?
освобождает память, выделенную с помощью new

Не по теме:

а переменные обычно обозначают информативно. arr - нормальное название для переменной-массива (array). А что такое R ?

UME
2 / 2 / 1
Регистрация: 14.01.2014
Сообщений: 68
07.02.2014, 19:36  [ТС] #7
Цитата Сообщение от KOPOJI Посмотреть сообщение
Заглавными буквами обычно обозначают константы, не надо путать других программистов..
извиняюсь, я исходил из того что сопротивление обозначается R
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 19:36
Привет! Вот еще темы с ответами:

Error C2296: %: недопустимо, левый операнд имеет тип "float" - C++
Добрый день, дорогие эксперты. Я составил программу, но столкнулся с рядом проблем включая объявление переменной и преобразованием типов ...

Чем отличаются float преобразования (float)var от float(var) - C++
Здравствуйте! Подскажите, чем отличается (float)var от float(var)

invalid types `float[float]' for array subscript - C++
void SEARCH(float vol, float price, int i) { if (i&gt;N) { if(price&gt;maxprice) { ...

cannot convert `float' to `float*. Почему так происходит? - C++
всем привет, помогите исправить ошибки... а то голова мало варит уже, а завтра надо сдать уже #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...


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

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

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