Difference between "while" loop and "do while" loop
The do while loop executes the content of the loop once before checking the condition of the while.
Whereas a while loop will check the condition first before executing the content.
In this case you are waiting for user input with scanf(), which will never execute in the while loop as wdlen is not initialized and may just contain a garbage value which may be greater than 2.
do { printf("Word length... "); scanf("%d", &wdlen);} while(wdlen<2);
A do-while
loop guarantees the execution of the loop at least once because it checks the loop condition AFTER the loop iteration. Therefore it'll print the string and call scanf, thus updating the wdlen variable.
while(wdlen<2){ printf("Word length... "); scanf("%d", &wdlen);}
As for the while
loop, it evaluates the loop condition BEFORE the loop body is executed. wdlen
probably starts off as more than 2 in your code that's why you never reach the loop body.