Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am having trouble sorting the names array with the fina score array. I was abl

ID: 3547482 • Letter: I

Question

I am having trouble sorting the names array with the fina score array. I was able to get the final score array to sort from lowest score to highest but how would I do the names with it?




#include <stdio.h>

#include <stdlib.h>



void sumScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max);

void sortScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max);



int main()

{

FILE *scoreFile;

int i,m=0;

double dScore[100], eScore[100], finalScores[100];

char names[100][50];

scoreFile = fopen("scores.txt","w");

if(scoreFile == NULL){

printf("Can't open file! ");

return 0;

}

printf("This program will print out the resluts of the gymnast. ");

printf("Enter the number of competitiors: ");

scanf("%i",&m);

for(i=0;i<m;i++){

printf("Enter the Last Name, D-Score and E-Score of the competitor. ");

scanf("%s %lg %lg",names[i],&dScore[i],&eScore[i]);

if(dScore[i] < 0){break;}

}

printf("The Final Scores are: ");

sumScore(names, dScore, eScore, finalScores, i);

fprintf(scoreFile,"The Final Results are: ");

sortScore(names, dScore, eScore, finalScores, i);

for(i=0; i<m; i++){

fprintf(scoreFile,"Name: %s Final Score: %g ", names[i],finalScores[i]);

}

fclose(scoreFile);

}



void sumScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max)

{

int i;

for(i=0;i<max;i++){

}

finalScore[i] = dScore[i] + eScore[i];

printf("Name: %s Final Score: %g ", names[i],finalScore[i]);

}

}





void sortScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max)

{

int i,j;

double swap;

for(i=0;i<max;i++){

for(j=0;j<max-i-1;j++){

if(finalScore[j]>finalScore[j+1]){

swap=finalScore[j];

finalScore[j]=finalScore[j+1];

finalScore[j+1]=swap;

}

}

}

Explanation / Answer

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void sumScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max);
void sortScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max);
int main()
{
FILE *scoreFile;
int i,m=0;
double dScore[100], eScore[100], finalScores[100];
char names[100][50];
scoreFile = fopen("scores.txt","w");
if(scoreFile == NULL){
printf("Can't open file! ");
return 0;
}
printf("This program will print out the resluts of the gymnast. ");
printf("Enter the number of competitiors: ");
scanf("%i",&m);
for(i=0;i<m;i++){
printf("Enter the Last Name, D-Score and E-Score of the competitor. ");
scanf("%s %lg %lg",names[i],&dScore[i],&eScore[i]);
if(dScore[i] < 0){break;}
}
printf("The Final Scores are: ");
sumScore(names, dScore, eScore, finalScores, i);
fprintf(scoreFile,"The Final Results are: ");
sortScore(names, dScore, eScore, finalScores, i);
for(i=0; i<m; i++){
fprintf(scoreFile,"Name: %s Final Score: %g ", names[i],finalScores[i]);
}
fclose(scoreFile);
}
void sumScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max)
{
int i;
for(i=0;i<max;i++)
{
finalScore[i] = dScore[i] + eScore[i];
printf("Name: %s Final Score: %g ", names[i],finalScore[i]);
}
}

void sortScore(char names[][50], double dScore[], double eScore[], double finalScore[], int max)
{
int i,j;
double swap;
char temp[50];
for(i=0;i<max;i++){
for(j=0;j<max-i-1;j++){
if(finalScore[j]>finalScore[j+1])
{
swap=finalScore[j];
finalScore[j]=finalScore[j+1];
finalScore[j+1]=swap;
//u have to swap names also along with scores.
strcpy(temp,names[j]);
strcpy(names[j],names[j+1]);
strcpy(names[j+1],temp);
}
}
}
}