#include #include #include typedef struct Golfer { char fName[80]; char lName[80]; int handicap; } Golfer; void printRoster(Golfer players[], int numGolfers); int findBestGolfer(Golfer players[], int numGolfers); void sortByHandicap(Golfer golfers[], int numGolfers); int main() { printf("Hello World!! \n"); Golfer g; strcpy(g.fName, "Roger"); strcpy(g.lName, "Priebe"); g.handicap = 17; printf("%s, %s - %d\n", g.lName, g.fName, g.handicap); const int MAX_PLAYERS = 50; Golfer golfers[MAX_PLAYERS]; FILE *fptr; fptr = fopen("golfers.dat", "r"); if (fptr == NULL) { printf("open error...\n"); exit(-42); } else printf("success!\n"); char fName[80]; char lName[80]; int handicap; int numGolfers = 0; while (fscanf(fptr, "%s %s %d",fName, lName, &handicap) != EOF) { //printf("%s %s %d\n", fName, lName, handicap); golfers[numGolfers].handicap = handicap; strcpy(golfers[numGolfers].fName, fName); strcpy(golfers[numGolfers].lName, lName); numGolfers++; } printRoster(golfers, numGolfers); printf("the best golfer is %s\n", golfers[findBestGolfer(golfers, numGolfers)].fName); sortByHandicap(golfers, numGolfers); printRoster(golfers, numGolfers); return 0; } void printRoster(Golfer golfers[], int numGolfers) { for (int i = 0; i < numGolfers; i++) { printf("%s, %s - %d\n", golfers[i].lName, golfers[i].fName, golfers[i].handicap); } } int findBestGolfer(Golfer golfers[], int numGolfers) { int best = 0; for (int i = 1; i < numGolfers; i++) { if (golfers[best].handicap > golfers[i].handicap) { best = i; printf("best is %d\n", best); } } return best; } void sortByHandicap(Golfer golfers[], int numGolfers) { for (int i = 0; i < numGolfers - 1; i++) { int best = i; for (int j = i + 1; j < numGolfers; j++) { if (golfers[j].handicap < golfers[best].handicap) { best = j; } } Golfer g = golfers[i]; golfers[i] = golfers[best]; golfers[best] = g; } }