This program is supposed to get the computer to guess a number that the user inputs. There are a couple of bugs:
1 - the computer generates "random" numbers in the same order every time I run it.
2 - the computer makes identical guesses.
3 - when the computer guesses the correct number, and the user inputs a 'c' for correct, the program enters an endless loop, but I can't find the problem.
Maybe another set of eyes can help me find my mistake?
1 - the computer generates "random" numbers in the same order every time I run it.
This is because you haven't seeded the random number generator. Call the srand function at the beginning of the program. Using an identical seed will create the same set of random numbers. The usual way is to pass time(NULL) to srand so as to use a new seed each time.
2 - the computer makes identical guesses.
This is a side effect of the above.
3 - when the computer guesses the correct number, and the user inputs a 'c' for correct, the program enters an endless loop, but I can't find the problem.
Your loop condition, while (cHigh != 'C' || cHigh != 'c') is always true. Let's say cHigh is 'c', then it's not 'C' so the left condition is true so the whole condition is true. You have to change this condition to have the semantics you're looking for.
Also, you're printing the "The computer got it! ..." in each iteration. You should only print that after you've determined the computer got it right.