Возведение в степень

Тема в разделе "WASM.BEGINNERS", создана пользователем Mark, 24 ноя 2011.

  1. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Я написал код, (С++), возведение числа в степень. Что не так?

    Код (Text):
    1. #include <stdio.h>
    2. #include <iostream>
    3. #include <Windows.h>
    4. #include <stdlib.h>
    5. #include <conio.h>
    6.  
    7.  
    8. using namespace std;
    9.  
    10. int main()
    11. {
    12.     setlocale(LC_CTYPE,"Russian");
    13.  
    14.     float s, m, u;
    15.  
    16.     cout << ("Введите число: ");
    17.     cin >> s;
    18.  
    19.     cout << ("\n" "Введите степень: ");
    20.         cin >> m;
    21.  
    22.     do
    23. {
    24.   u =  s*m;
    25. }
    26.  
    27. while (m);
    28.  
    29.     cout << ("Число, возведенное в степень, равно: ") << u;
    30.  
    31.    _getch();
    32.  
    33.    return 0;
    34. }
     
  2. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А что тут может быть так?
    5 в третьей степени - это 5*5*5, а у тебя 5*3*3*3*...*3

    Код (Text):
    1. do
    2. {
    3.   u =  s*m;
    4. }
    5. while (m);
    Это вообще бесконечный цикл при m не равном нулю.
    Может стоит прекращать постить всё что в голову взбредёт, а прочитать книжку по основам языка хотя бы?
     
  3. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    cppasm
    Нет. У него не 5*3*3*...*3.
    У него
    5*3
    5*3
    ...
    5*3
     
  4. Psionic

    Psionic New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2008
    Сообщения:
    153
    парень это уже не смешно - math.h тебе зачем написан?
     
  5. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Psionic
    l_inc
    cppasm

    Хорошо, хорошо. Тогда приведите пожалуйста пример кода) А не критикуйте)
     
  6. Psionic

    Psionic New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2008
    Сообщения:
    153
    http://devoid.com.ua/functions-about/c-functions/pow.html ня, токо учти твой подход освоению программирования способствует росту той части мозга ответственной за костыли.
     
  7. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Psionic
    Ой, спасибо)
     
  8. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Psionic

    Про math.h приведете пример выделения квадратного корня? Если можно)
     
  9. Psionic

    Psionic New Member

    Публикаций:
    0
    Регистрация:
    25 сен 2008
    Сообщения:
    153
    Код (Text):
    1. float koren=sqrt(4.0);
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Mark
    Нет, ребята, все не так, все не так, ребята! (С)
    Если у тебя степень m не int, а float, то никакие циклы тут не помогут

    Если все же m - целое, то тривиальное решение в лоб выглядит ес-но так
    Код (Text):
    1. float res = 1; //результат
    2. while (m) {
    3.   res*=s;
    4.   m--;
    5. }
    А классический способ использует разложение m по степеням 2 и соотв-но работает в m/Log(m) быстрее
    Код (Text):
    1. float res = 1;
    2. while (m) {
    3.   if (m & 1)  
    4.     res*=s;
    5.   s*=s;
    6.   m=m >> 1;
    7. }
     
  11. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    leo, дробные степени только в старших классах преподают, как и свойства степеней и логарифмы.
     
  12. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    :offtop:
    Dmitry_Milk, а кодинг на С++ в детском саду, с молоком матери впитывают? :)
     
  13. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    535
    Не знаю насчет детского сада, но чел заявляет, что ему лет 12. ИМХО, вполне уже можно осваивать программирование. Правда изучать лучше по книгам, чего тс ленится делать.
     
  14. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Согласен, ошибся.
    Но цикл у него всё равно бесконечный.
     
  15. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    cppasm

    Я уже понял)