В этом задании вы получите список самых критичных рецензентов.Критический рецензент определяется как:
Рецензент, имеющий столько же отрицательных рекомендаций ('n'), что и рецензент с наиболее отрицательными рекомендациями.
Использование этого определения критическогорецензент, вы должны просмотреть список рекомендаций рецензента и определить, являются ли они критическими рецензентами.
** Возвращаемое значение функции должно быть числом критических рецензентов.**
Кроме того, список имен критических рецензентов, созданных функцией, также должен быть доступен за пределами функции.
В этом примере наибольшее количество «n» рекомендаций дляодин рецензент - 2. Как только вы определили наибольшее количество «n» рекомендаций, вы можете проверить, какие из рецензентов являются «критическими».В этом примере мы можем определить, что рецензенты «Ларри», «Джуди», «Маниша», «Дора» и «Ник» являются критическими рецензентами, поскольку они являются рецензентами, представленными индексами массива 1, 3, 6, 8 и 9.соответственно.Число 5 будет возвращено возвращаемым значением функции, так как это число критических рецензентов, найденных в списке.Эта функция не имеет операторов печати.
изо всех сил пытается передать имена только критических рецензентов в массив для отображения в main.
//Function prototypes
void Recommendations(); //task 1
int criticalReviewers(); //task 2
//MAIN FUNCTION
int main(void) {
//Variables
char reviewerNames[NUMBER_REVIEWERS][30] = { "Ritu",
"Larry",
"Dan",
"Judi",
"Eric",
"Isabelle",
"Manisha",
"Terra",
"Dora",
"Nick" };
char movieNames[NUMBER_MOVIES][50] = { "Star Wars",
"Incredibles",
"Gone with the wind" };
char userReviews[NUMBER_REVIEWERS][NUMBER_MOVIES];
char reviewerAnswers[10][3];
char negativeReviewers[10][30];
//TASK TWO
printf("\n**********************************************\n");
printf("Task 2: Get names of critical reviewers\n\n");
//call to task 2 function
printf("Number of Critical Reviewers: %d\n", criticalReviewers(reviewerAnswers, reviewerNames, negativeReviewers));
printf("Critical Reviewers: ");
for (int k=0; k<criticalReviewers(reviewerAnswers, reviewerNames, negativeReviewers); k++) {
printf("%s, ", negativeReviewers + k);
}
printf("%s", negativeReviewers + criticalReviewers(reviewerAnswers, reviewerNames, negativeReviewers));
//CALL TO TASK 3 FUNCTION
mostRecommended(reviewerAnswers, movieNames);
WINPAUSE; // REMOVE BEFORE SUBMITTING
return 0;
}
// ЗАДАТЬ ОДНУ ФУНКЦИЮ
//TASK 2 FUNCTION
int criticalReviewers(char userAnswers[10][3], char Reviewers[][30], char critReviewers[][30]) {
int i=0;
int j=0;
int numCriticalReviewers = 0;
int criticalScore = 0;
int criticalReviewers[10];
int timesSkipped=0;
//loop to determine number of critical REVIEWERS
for (i=0; i<10; i++) {
criticalReviewers[i] = 0;
for (j=0; j<3; j++) {
if (userAnswers[i][j] == 'n') {
criticalReviewers[i] = criticalReviewers[i] + 1;
}
if (criticalReviewers[i] > criticalScore) {
criticalScore = criticalReviewers[i];
}
}
}
for (i=0; i<10; i++) {
if (criticalReviewers[i] == criticalScore) {
numCriticalReviewers = numCriticalReviewers + 1;
for (int k=i; k<i+1; k++) {
critReviewers[k-timesSkipped][30] = Reviewers[k][30];
timesSkipped = 0;
}
}
else {
timesSkipped = timesSkipped + 1;
}
}
for (i=0; i<10; i++) {
if (criticalReviewers[i] == criticalScore) {
critReviewers = Reviewers + i;
}
}
return numCriticalReviewers;
}
Я правильно напечатал в основном количество критических рецензентов, но ниже следует напечатать имена критических рецензентов, которые я не могу выяснить.каждый раз, когда я пытаюсь передать значения, он печатает случайную строку букв и символов.