add numerical recipes library
This commit is contained in:
59
lib/nr/ansi/examples/xdecchk.c
Normal file
59
lib/nr/ansi/examples/xdecchk.c
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
/* 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
|
||||
Reference in New Issue
Block a user