Обсуждение:Язык Си в примерах/Степень числа
Добавить темуВнешний вид
Последнее сообщение: 15 лет назад от 188.18.71.186
#include<stdio.h>
double power(double x, long n) {
if(n == 0) return 1;
if(n < 0) return power ( 1.0 / x, --n); // Зачем здесь эта строчка, если программа "не рассчитана" на
//случай отрицательных n? - т.е. я хочу сказать, что код
//не соответствует последующему тексту:
//"Приведёный выше пример не будет работать для отрицательных
//показателей степени (см. третью строку функции "power")"
//- третья строчка это return x * power(x, n - 1);, а зачем тогда
//вторая строчка с проверкой отрицательности n и последующим
//вызовом функции power с несовсем правильными аргументами: может
//быть вместо power ( 1.0 / x, --n)
//нужно power ( 1.0 / x, -n) ???
return x * power(x, n - 1); }
void main() {
double x;
long n;
while (scanf ("%lf %ld", &x, &n) == 2) {
printf("%lf\n", power (x, n)); }
}
188.18.71.186 16:45, 17 ноября 2009 (UTC) anonymous