So i ended up figuring it out with everyone's help. first i did not include "return 0" if the N or n condition was met after the program looped at least once, and secondly i changed the (Y or y or N or n) while statement, to read (Y or y and N or n) which i believe was one of the major problems also. my final code looks as follows:
Code:
#include <stdio.h>
int main()
{
char a;
char noun_one[20];
char adjective[20];
char verb[20];
char noun_two[20];
do {
printf ("Would you like to do a MadLib?(Y/N):\n");
scanf ("%s", &a);
if (a=='y'|| a=='Y'){
printf ("Type in a noun:\n");
scanf ("%s", &noun_one);
printf ("type an adjective:\n");
scanf ("%s", &adjective);
printf ("type a verb:\n");
scanf ("%s", &verb);
printf ("type another noun:\n");
scanf ("%s", &noun_two);
printf ("Compiling Madlib...\n");
printf ("This is what i came up with =)\n The %s ribbon was wrapped around the %s.\n", adjective, noun_one);
printf ("When the %s came to the house and saw he %s as fast as he could to the door\n",noun_two, verb);
}
else if (a=='N'||a=='n'){
printf ("Well maybe another time than!\n");
return 0;}} while (a!='Y'||a!='y'&&a!='N'||a!='n');/*this line seemed to correct everything*/
getch();
return 0;
}
now it did require me to expand my do-while loop to the end of the code as opposed to just the first line, but it does seem to be a fix.(no more looping under any circumstance)
special thanks to tater for pointing out that i did not specify any terminating condition *thumbs up*.
I will now try to work out an alternate solution using taters method(there is more than one way to skin a cat after all).
thanks for all the help so far guys, it is greatly appreciated. I am still very new to the C language and to coding in its entirety.