
/* Driver for routine decchk */

#include <stdio.h>
#define NRANSI
#include "nr.h"

#define MAXLINE 128

int main(void)
{
	int j,k,l,n,nbad=0,ntot=0;
	int iok,jok;
	char lin[MAXLINE+2],ch,chh;

	/* test all jump transpositions of the form 86jlk41 */
	lin[0]='8';
	lin[1]='6';
	lin[5]='4';
	lin[6]='1';
	for (j=48;j<=57;j++) {
		for (k=48;k<=57;k++) {
			for (l=48;l<=57;l++) {
				lin[3]=l;
				if (j != k) {
					ntot++;
					lin[2]=j;
					lin[4]=k;
					iok=decchk(lin,7,&ch);
					lin[7]=ch;
					iok=decchk(lin,8,&chh);
					lin[2]=k;
					lin[4]=j;
					jok=decchk(lin,8,&chh);
					if (!iok || jok) nbad++;
				}
			}
		}
	}
	printf("%s %14s %3d\n","Total tries:"," ",ntot);
	printf("%s %16s %3d\n","Bad tries:"," ",nbad);
	printf("%s %11s %4.2f\n","Fraction good:"," ",((float)(ntot-nbad))/ntot);
	for (;;) {
		printf("enter string terminated by x:\n");
		if (gets(lin) == NULL) break;
		for (j=0;j<MAXLINE;j++)
			if (lin[j] == 'x') break;
		n=j;
		if (!n) break;
		iok=decchk(lin,n,&ch);
		lin[n]=ch;
		jok=decchk(lin,n+1,&chh);
		lin[n+1]=0;
		printf("%s checks as %c\n",lin,jok ? 'T' : 'F');
	}
	printf("Normal completion\n");
	return 0;
}
#undef NRANSI
