Я пишу программу для регистрации бейсбольных команд, игроков и средних показателей.Предполагается прочитать в названиях команд, сколько команд существует, сколько их игроков, а затем взять имена игроков + его команда + его среднее число.После этого должны быть напечатаны команды, первоначально введенные, когда только команды были приглашены, и каждый из игроков от него и их средние значения.Тем не менее, он делает последнюю часть неправильно.Мой код:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct Player {
char name[50];
char teamName[50];
float battingAv;
};
int main(void)
{
int userNumber;
printf("Enter the number of teams you wish to record: ");
scanf("%d", &userNumber);
int i;
char teams[userNumber][40];
for (i = 0; i < userNumber; i++) {
char name[40];
printf("Enter the name(s) of the teams: ");
scanf("%s", &name);
strcpy(teams[i], name);
}
int q;
for (q = 0; q < userNumber; q++) {
printf("Team %d is %s\n", q + 1, teams[q]);
}
int numOfPlayers;
printf("Enter the TOTAL number of players for all teams: ");
scanf("%d", &numOfPlayers);
int j;
struct Player playersEntered[numOfPlayers];
for (j = 0; j < numOfPlayers; j++) {
printf("Enter the %d Player name, Team name, and batting average: ", j + 1);
scanf("%s %s %f", &playersEntered[j].name, &playersEntered[j].teamName, &playersEntered[j].battingAv);
}
printf("Listing of players and batting average according to team names:: \n");
int m;
for (m = 0; m < userNumber; m++) {
int n;
printf("%s-\n", teams[m]);
for (n = 0; n < numOfPlayers; n++) {
//if(playersEntered[n].teamName == teams[m])
int result = strcmp(playersEntered[n].teamName, teams[m]);
if (result == 0)
{
printf("\t%s %f\n ", playersEntered[m].name, playersEntered[m].battingAv);
}
else {
continue;
}
}
}
}
Моя логика заключается в том, что последний цикл должен проходить через PlayersEntered и сравнивать имя команды, заданное для этого конкретного игрока, со списком команд, введенных в начале, поэтому он будет печатать толькоих имя под командой, для которой они перечислены.Но мой вывод неверен.
Мой вывод должен быть таким: