Fix infinite loop in 1989/ovdluhe

As Landon said it is a bug (after I asked about it) I have fixed it.
Without this fix the program printed the same thing over and over again
in some cases. The problem was a for() loop that didn't always have the
pointer incremented. It looks like I could have got away with just
updating the increment part of the loop but I didn't do that as I didn't
see it at first.

The optimiser was disabled. That might not be strictly necessary but I
had it disabled for a time so I have kept it disabled.

Also I removed my name in the README.md: this was missed when the much
better idea of a general thanks file was come up with. When testing the
fix I came across part of my name which made me check. I have not yet
typo/format checked this file or any of 1989 so that was not done. That
might or might not happen in part or in whole later today but either way
it'll be started soon.
This commit is contained in:
Cody Boone Ferguson committed 2023-10-19 05:19:58 -07:00
1 parent 0262590956
commit f882ea84dd
5 files changed
+15 -7

No files matched your search

+1 -1
View File
@@ -68,7 +68,7 @@ CINCLUDE=
# Optimization
#
OPT= -O3
OPT=
# Default flags for ANSI C compilation
#
+2 -2
View File
@@ -38,8 +38,7 @@ by chance or is killed.
### Alternate code:
The author suggested that one varies the definition of `P` from 2 through 10. As
it's a `#define` it's easy to set up which [Cody Boone
Ferguson](/winners.html#Cody_Boone_Ferguson) did for us. To use try:
it's a `#define` it's easy to set up. To use try:
```sh
make CFLAGS="-DP=9" clobber alt
@@ -47,6 +46,7 @@ make CFLAGS="-DP=9" clobber alt
Use `ovdluhe.alt` as you would `ovdluhe`.
## Judges' remarks:
Run this program using your favorite text file as input. Files
+1 -1
View File
@@ -20,7 +20,7 @@ main(){ape pe,*ep=a;srand((EP)time((long)E));
while(((*(ep++)=getchar())!=-A)&&((ep-a)<PE));
*(ae= --ep)=E;for(ap=E;ap<=P;){APE;if(pe=PA())
{putchar(pe);if(ap<P){p[ap]=pe;ap++;}else{
ep=p+A;while(*ep) *(ep-A)= *(ep++); *(ep-A)=pe;}}else break;}}
ep=p+A;while(*ep) *(ep-A)= *(ep++); *(ep-A)=pe;++ap;}}else break;}}
PA(){EA ape pe,*ep=a,pa,Ap=E;for(ep=a;ep<ae-P;ep++)
if(!strncmp(ep,p,ap)){e[*(ep+ap)]++;Ap++;}if(!Ap)return(Ap);
pa=rand()%Ap+A;pe=~E,Ap=!Ap;while((Ap+=e[++pe])<pa);return(pe);}
+1 -1
View File
@@ -14,7 +14,7 @@ main(){ape pe,*ep=a;srand((EP)time((long)E));
while(((*(ep++)=getchar())!=-A)&&((ep-a)<PE));
*(ae= --ep)=E;for(ap=E;ap<=P;){APE;if(pe=PA())
{putchar(pe);if(ap<P){p[ap]=pe;ap++;}else{
ep=p+A;while(*ep) *(ep-A)= *(ep++); *(ep-A)=pe;}}else break;}}
ep=p+A;while(*ep) *(ep-A)= *(ep++); *(ep-A)=pe;++ap;}}else break;}}
PA(){EA ape pe,*ep=a,pa,Ap=E;for(ep=a;ep<ae-P;ep++)
if(!strncmp(ep,p,ap)){e[*(ep+ap)]++;Ap++;}if(!Ap)return(Ap);
pa=rand()%Ap+A;pe=~E,Ap=!Ap;while((Ap+=e[++pe])<pa);return(pe);}