Я написал код, (С++), возведение числа в степень. Что не так? Code (Text): #include <stdio.h> #include <iostream> #include <Windows.h> #include <stdlib.h> #include <conio.h> using namespace std; int main() { setlocale(LC_CTYPE,"Russian"); float s, m, u; cout << ("Введите число: "); cin >> s; cout << ("\n" "Введите степень: "); cin >> m; do { u = s*m; } while (m); cout << ("Число, возведенное в степень, равно: ") << u; _getch(); return 0; }
А что тут может быть так? 5 в третьей степени - это 5*5*5, а у тебя 5*3*3*3*...*3 Code (Text): do { u = s*m; } while (m); Это вообще бесконечный цикл при m не равном нулю. Может стоит прекращать постить всё что в голову взбредёт, а прочитать книжку по основам языка хотя бы?
http://devoid.com.ua/functions-about/c-functions/pow.html ня, токо учти твой подход освоению программирования способствует росту той части мозга ответственной за костыли.
Mark Нет, ребята, все не так, все не так, ребята! (С) Если у тебя степень m не int, а float, то никакие циклы тут не помогут Если все же m - целое, то тривиальное решение в лоб выглядит ес-но так Code (Text): float res = 1; //результат while (m) { res*=s; m--; } А классический способ использует разложение m по степеням 2 и соотв-но работает в m/Log(m) быстрее Code (Text): float res = 1; while (m) { if (m & 1) res*=s; s*=s; m=m >> 1; }
Не знаю насчет детского сада, но чел заявляет, что ему лет 12. ИМХО, вполне уже можно осваивать программирование. Правда изучать лучше по книгам, чего тс ленится делать.