#include #include #include typedef struct Golfer { char fName[80]; char lName[80]; int handicap; } Golfer; int findBestGolfer(Golfer golfers[], int numGolfers); void printRoster(Golfer golfers[], 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); Golfer golfers[50]; FILE *fptr; fptr = fopen("golfers.dat", "r"); int numGolfers = 0; if (fptr == NULL) { printf("Cannot open file!\n"); exit(0); } else { printf("found it!\n"); } char fName[80]; char lName[80]; int handicap; while (fscanf(fptr, "%s %s %d", fName, lName, &handicap) != EOF) { golfers[numGolfers].handicap = handicap; strcpy(golfers[numGolfers].fName, fName); strcpy(golfers[numGolfers].lName, lName); numGolfers++; } printRoster(golfers, numGolfers); int bestGolfer = findBestGolfer(golfers, numGolfers); printf("The best golfer is %s\n", golfers[bestGolfer].fName); sortByHandicap(golfers, numGolfers); printRoster(golfers, numGolfers); } 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[i].handicap < golfers[best].handicap) best = i; } 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[best].handicap > golfers[j].handicap) best = j; } Golfer temp; temp = golfers[i]; golfers[i] = golfers[best]; golfers[best] = temp; } }