#include <stdio.h>

typedef unsigned int Uint;
#define N 100
#define DP 1
//RADIX == 10^LOG
#define LOG 1
#define RADIX 10
typedef Uint Liczba[N+1];
 
void plus( Liczba a, Liczba b){                  // a[]:=a[]+b[]
	for( Uint c=0, i=N; i>0; i-- ){
		c += a[i]+b[i];
		a[i] = c % RADIX;
		c /= RADIX;}}

void minus( Liczba a, Liczba b) {                // a[]:=a[]-b[]
	for( Uint c=0, i=N; i>0; i-- ){
		c += b[i];
		if( a[i]<c ){
			a[i] = RADIX + a[i] - c; c=1; }
		else {
			a[i] -= c; c=0; }}}

void razyU( Liczba a, Uint b ) {                 // a[]:=a[] * b
	for( Uint c=0,i=N; i>0; i-- ){
		c += a[i]*b;
		a[i]= c % RADIX;
		c /= RADIX; }}

void pisz( Liczba a ){ Uint i;
	printf("%*u.", LOG, a[1]);
	for( i=2; i<DP; i++ ) printf("%0*u", LOG, a[i]);
	putchar('.');
	for(    ; i<=N; i++ ) printf("%0*u", LOG, a[i]); }
		
int main(void) {
	Liczba 
		a={0,1,0,9,0},
		b={0,2,0,5,1};
	plus(a, b); pisz(a); puts("");
	razyU(a, 5); pisz(a);
	return 0;
}
