Files
sibsutis/proglabs/lab7-8/9.c
T
oniic 2ed5553b96 Changes to be committed:
new file:   proglabs/lab7-8/10.c
	new file:   proglabs/lab7-8/11.c
	new file:   proglabs/lab7-8/12.c
	new file:   proglabs/lab7-8/13.c
	new file:   proglabs/lab7-8/14.c
	new file:   proglabs/lab7-8/15.c
	new file:   proglabs/lab7-8/16.c
	new file:   proglabs/lab7-8/17.c
	new file:   proglabs/lab7-8/18.c
	new file:   proglabs/lab7-8/19.c
	new file:   proglabs/lab7-8/3
	new file:   proglabs/lab7-8/5.c
	new file:   proglabs/lab7-8/6
	new file:   proglabs/lab7-8/6.c
	new file:   proglabs/lab7-8/7.c
	new file:   proglabs/lab7-8/8.c
	new file:   proglabs/lab7-8/9
	new file:   proglabs/lab7-8/9.c
	new file:   proglabs/lab7-8/test
	new file:   proglabs/lab7-8/tmp.out
2025-11-13 00:08:24 +07:00

37 lines
859 B
C

#include <stdio.h>
void power(double *x, int *exp, double *xpow, int *i);
int main(void){
double x, xpow;
int exp, i;
i = 1;
printf("Write: num pow\t(q for exit)\nWrite: ") ;
while (scanf(" %lf %d", &x, &exp) == 2){
if ((x == 0) && (exp == 0)){
printf("Result of 0 in pow 0 is undefind\n");
}
else if(exp == 0){xpow = 1;}
else({
xpow = x;
power(&x,&exp,&xpow,&i);
});
if ((x != 0)||(exp != 0)){
printf ("%.2lf в степени %d равно %lf\n", x, exp, xpow);}
printf("Write: ");
}
return 0;
}
void power (double *x, int *exp, double *xpow, int *i){
if(*i<*exp){
*xpow = (*xpow * *x);
(*i)++;
power(x, exp, xpow, i);
}else({
if (*exp<0) *xpow = (1 / *xpow);
(*i) = 1;
});
}