File: Stare vježbe/vjezbe13/81__union.c
/* 81__union.c ----- Program demonstrira rad s unijama (union-ima). */ #include <stdio.h> #include <math.h> typedef union { double fexp; int nexp; } nvals; typedef struct { double x; char flag; nvals exp; } values; double power(values a); int main() { values a; int i; double n,y; printf("Unesite vrijednost za x: "); scanf("%lf", &a.x); printf("Unesite vrijednost za n: "); scanf("%lf", &n); i=(int)n; a.flag=(i == n) ? 'i' :'f'; if (a.flag == 'i') a.exp.nexp = i; else a.exp.fexp = n; if (a.flag == 'f' && a.x <= 0.0) printf("Greska pri unosu!\n"); else { y=power(a); } return 0; } double power(values a) { int i; double y=a.x; if (a.flag == 'i') if (a.exp.nexp == 0) y=1.0; else { for (i=1;i<abs(a.exp.nexp); ++i) y *=a.x; if (a.exp.nexp < 0) y=1./y; } else y=exp(a.exp.fexp*log(a.x)); return y; }
|