Я уже спрашивал здесь в другом посте, но ни один из ответов не помог моей программе. У меня есть программа, которая запрашивает у пользователя числа и вычисляет среднее значение, медиану и режим. Затем программа должна предложить пользователю снова сыграть, и если пользователь выберет y или Y, она должна воспроизвести игру, n или N, чтобы остановить, и если что-то еще, кроме этого, сказать недействительным и, пожалуйста, наберите y или n для бла бла ты понял. вот мой основной и мой метод goAgain ():
#define MAX 25
#include<stdio.h>
#include <stdbool.h>
#include <time.h>
#include <stdlib.h>
int readTotalNums();
void fillArray(int total, int nums[]);
void sortArray(int nums[], int total);
double findMean(int nums[], int total);
double findMedian(int nums[], int total);
int findMode(int nums[], int total);
void printResults(double mean, double median, double mode);
bool goAgain();
int main() {
int nums[MAX];
int total;
double mean, median, mode;
bool b;
do {
total = readTotalNums();
fillArray(total, nums);
sortArray(nums, total);
mean = findMean(nums, total);
median = findMedian(nums, total);
mode = findMode(nums, total);
printResults(mean, median, mode);
b = goAgain();
} while (b==true);
return 0;
}
// здесь другие методы
bool goAgain() {
char *temp;
printf("\nWould you like to play again(Y/N)? ");
scanf("%c", &temp);
while (temp != 'n' && temp != 'N' && temp != 'y' && temp != 'Y') {
printf("\nI am sorry that is invalid -- try again");
printf("\nWould you like to play again(Y/N)? ");
scanf("%c", &temp);
}
if (temp == 'y' || temp == 'Y') {
return true;
} else {
return false;
}
}
каждый раз, когда я играю в игру, и она попадает в подсказку, все, что я печатаю, просто ничего не делает и повторяет неверную попытку еще раз, даже если ввод - y или N. спасибо за вашу помощь:)