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

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

Войти
Регистрация
Восстановить пароль
 
artemd55131
2 / 4 / 0
Регистрация: 26.06.2014
Сообщений: 61
#1

Функция возведения в степень. - C++

09.07.2014, 03:02. Просмотров 824. Ответов 8
Метки нет (Все метки)

написал библиотеку для вычисления степени чисел.некорректно работает при возвращении переменной из step.h в main.cpp и переводе в другую.
step.h:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <cmath>
  int result;
int step(int choise, int step)
{
 
    for(int i = 0; i < step; i++){
        result *= choise;
    }
 
return result;
}
main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include "step.h"
#include <iostream>
int main(){
 
    int a;
    
step(2,3);
result <<a; //ещё пробовал result >> a
std::cout <<result;
system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2014, 03:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция возведения в степень. (C++):

Функция возведения в степень - C++
Добрый день. Ребята, помогите решить проблему. Написал функцию для вычисления действительных корней кубического уравнения. возникает...

Рекурсивная функция возведения в степень - C++
Ребята, написал функцию для возведения в степень из учебника, но она почему-то не хочет работать. Вот код: int pow(int base, unsigned...

Рекурсивная функция возведения в степень - C++
Мое задание: Вычислить y = x^n(икс в степени n) по следующему правилу: y = ( x^n/2 )^2, если n четное и y = x * y^(n–1), если n...

не подключаеться функция возведениЯ в степень pow - C++
#include &lt;math.h&gt; L=sqrt(pow(x-x0)+pow(y-y0)); Почему не подключаеться функция возведениЯ в степень pow, кто...

Функция для возведения в степень (стыдно) - C++
Здравствуйте. Нужно написать программу, которая читает два целых значения (основание и показатель степени) и выдаёт результат, используя...

Возведения в степень - C++
Народ нужна помощь так как только, сегодня утром начал учить С++ сразу же возникли вопросы Например у меня есть последовательность чисел...

8
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
09.07.2014, 03:31 #2
обращаю внимание что это бред...
начнём с тела main:
C++
1
2
3
4
5
#include "step.h"
#include <iostream>
int main(){
 
    int a;
тут всё ок!
дальше
C++
1
step(2,3);
хм... странно
смотрим что же это за функция
C++
1
int step(int choise, int step)
ну я промолчу про всякие ссылки-указатели, здесь это не основная проблема, основанная проблема - сия функция нечто возвращает, и если копнуть в её код - то ужасно неэффективным способом степень числа (изучи уже блин логарифмы, например), ну ок, возвращает.... ок, а куда? а никуда, в пустоту, судя по вызову функции... что мы видели в начале перехода
C++
1
step(2,3);
глядим дальше и....
C++
1
result <<a;
зачем? переменная "a" так и не инициализированна,
C++
1
//ещё пробовал result >> a
соберись, это же бред, ты понимаешь написанное? задайся вопросом что это вообще значит
C++
1
system("pause");
и снова минус, как любитель C++, этого нет и не может быть в языке
0
olper
24 / 24 / 11
Регистрация: 02.12.2013
Сообщений: 75
09.07.2014, 04:58 #3
Цитата Сообщение от artemd55131 Посмотреть сообщение
вывод переменной в другую
мусье, извращенец

По существу "сформулированного в теме" предложения
Цитата Сообщение от artemd55131 Посмотреть сообщение
result <<a;
имелось ввиду вероятно
C++
1
result = a;
переменные не надо "выводить друг в друга", лучше их присваивать друг другу, или на худой конец копировать друг в друга... с оглядкой на тип переменных естественно.
А выводить их лучше в "поток" какой-нибудь и вводить тоже с потока какого-нибудь.


А по существу представленного кода, хотелось бы добавить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int result; // Глобальная, объявленная и определенная(!) в хедере.  Одноразовый хедер? 
int step(int choise, int step)
{
 
    for(int i = 0; i < step; i++){
        result *= choise;  // вспомним, result - глобальная, для одного вызова сгодится, 
                                 //но чем она была заполнена при создании???  
                                 // результат всегда рулетка                                 
 
    }
 
return result; // на ку-куй его возвращать? result - глобальная.
}
0
zss
Модератор
Эксперт С++
6578 / 6140 / 2021
Регистрация: 18.12.2011
Сообщений: 15,994
Завершенные тесты: 1
09.07.2014, 07:56 #4
Подвожу итог:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
int step(int choise, int step)
{
    int result=1;
    for(int i = 1; i <= step; i++)
        result *= choise;
    return result;
}
int main()
{
 
    int a=step(2,3);
    std::cout <<a<<std::endl;
    system("pause");
    return 0;
}
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.07.2014, 08:11 #5
Цитата Сообщение от abit Посмотреть сообщение
и снова минус, как любитель C++, этого нет и не может быть в языке
А вот тут подробнее, пожалуйста
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
09.07.2014, 08:15 #6
Цитата Сообщение от abit Посмотреть сообщение
ну я промолчу про всякие ссылки-указатели
А можно развернуто? Про ссылки-указатели и их преимущество по сравнению с передачей по значению применительно к int ?
0
Croessmah
09.07.2014, 09:14
  #7

Не по теме:

Цитата Сообщение от soon Посмотреть сообщение
А вот тут подробнее, пожалуйста
скорее всего имеется ввиду отсутствие pause в linux

0
Roodey
4 / 4 / 1
Регистрация: 23.05.2013
Сообщений: 36
09.07.2014, 09:21 #8
uglyPinokkio, ну, как минимум, динамичесие переменные имеют преимущество перед статическими в плане занимаемой памяти. Хотя тут вопрос в целесообразности, в крупных программах использовать стоит динами, дабы утечки памяти не было. В чем-то мелком достаточно будет статики.
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
09.07.2014, 09:26 #9
Цитата Сообщение от Roodey Посмотреть сообщение
динамичесие переменные имеют преимущество перед статическими в плане занимаемой памяти
Это о чем? там нет статических переменных.
0
09.07.2014, 09:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2014, 09:26
Привет! Вот еще темы с ответами:

Класс возведения в степень - C++
Добрый день всем. Тут зашел в тупик. Класс с функцией-членом возведения числа в степень путем перемножения друг на друга (я хочу добавить и...

программа возведения в степень - C++
Друзья, я &quot;начинающий&quot; в СИ и поэтому столкнулся с такой проблемой: мой компилятор &quot;Miracle C&quot; Неправильно выполняет код, взятый из...

Написать функцию возведения в степень - C++
Написать программу, которая выводит на печать значения 1^1, 2^2, 3^3, 4^4, 5^5 Степени чисел должны вычисляться в отдельной функции....

Перегрузить функцию возведения в степень - C++
Перегрузить функцию stepen(), в которой число x будет возводиться в степень у: а) x – целое, у – дробное; б) x – целое, у – целое; в)...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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