?????????????,?????????????????????????? C ????????????????:
- ????????:
#include#include #include #include
- ??????:
#define DIGITS 4 #define MAX_GUESSES 10
- ???????????:
void generateRandomNumber(int *number) { srand(time(NULL)); for (int i = 0; i < DIGITS; i++) { number[i] = rand() % 10; } }
- ???????????,?????????????????:
void compareNumbers(int *guess, int *answer, int *correct, int *misplaced) { *correct = 0; *misplaced = 0; bool answerUsed[DIGITS] = { false }; bool guessUsed[DIGITS] = { false }; // ????????? for (int i = 0; i < DIGITS; i++) { if (guess[i] == answer[i]) { (*correct)++; guessUsed[i] = true; answerUsed[i] = true; } } // ??????????????? for (int i = 0; i < DIGITS; i++) { if (!guessUsed[i]) { for (int j = 0; j < DIGITS; j++) { if (!answerUsed[j] && guess[i] == answer[j]) { (*misplaced)++; guessUsed[i] = true; answerUsed[j] = true; break; } } } } }
- ?????,???????:
int main() { int answer[DIGITS]; int guess[DIGITS]; int correct; int misplaced; // ???????? generateRandomNumber(answer); printf("Welcome to Zhuji Miao Suan!\n"); printf("Try to guess a %d-digit number within %d tries.\n", DIGITS, MAX_GUESSES); // ???? for (int i = 0; i < MAX_GUESSES; i++) { printf("Guess #%d: ", i + 1); scanf("", &guess[0], &guess[1], &guess[2], &guess[3]); // ?????? compareNumbers(guess, answer, &correct, &misplaced); printf("Correct: %d, Misplaced: %d\n", correct, misplaced); // ?????? if (correct == DIGITS) { printf("Congratulations! You guessed the number correctly!\n"); return 0; } } printf("Sorry, you ran out of guesses. The correct number was: %d%d%d%d\n", answer[0], answer[1], answer[2], answer[3]); return 0; }
?????? C ????????????????????????,??????????????,?????????????????