Обсуждение:Язык Си в примерах/Степень числа
Последнее сообщение: 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