/* runs the program */ int main(int argc, char ** argv) { char i_name[MAXNAME + 1] ; /* name of current entry in file */ int i_grade ; /* grade of current entry in file */ int i; /* counter */ /* file i/o to read in file for grades */ FILE *inputF ; char *mode = "r" ; /* store the file handle */ inputF = fopen(argv[1], mode) ; /* if cannot read file */ if(inputF == NULL) { fprintf(stderr, "Invalid input file.") ; exit(1) ; } /* pass in the address of "grade" */ while(fscanf(inputF, "%s %d", i_name, &i_grade) != EOF) { i_name[0] = toupper(i_name[0]) ; struct grade_entry entry ; entry.name = calloc( strlen( i_name ) + 1, sizeof( char ) ) ; strncpy(entry.name, i_name, strlen( i_name ) ) ; entry.grade = i_grade ; grade_list[numgrades] = entry ; numgrades++ ; } printf("\nUnsorted data: \n"); print_grades(); printf("\nSort by name: \n"); sort_by_name(); print_grades(); printf("\nSort by grade: \n"); sort_by_grade(); print_grades(); printf("\nMean: %d\n", calcMean(grade_list, numgrades)); printf("Median: %d\n", calcMedian(grade_list, numgrades)); return 0; }
int main(int argc, char** argv) { // DECLARATIONS int numParticipants=argc-1; int *answers=(int *)malloc(NQUESTIONS*sizeof(int)); if(answers==0) { fputs("Malloc (answers) returned null!\n",stderr); return -1; } // CRUDE ARGUMENT CHECKING if(argc<2) fputs("Error: No argument supplied!\n", stderr); for(int i=0;i<NQUESTIONS;++i) { answers[i]=(myrand()%4+1); } /////////////////////////////////////////////////////////////////// // 3a) how many right answered question a single participant have? /////////////////////////////////////////////////////////////////// FILE *f; int *r=(int *)malloc(numParticipants*sizeof(int)); if(r==0) { fputs("Malloc (r) returned null!\n",stderr); return -1; } f=fopen("rightanswers_pp.txt","w"); fprintf(f,"number of right answers per participant:\n"); for(int i=0;i<numParticipants;++i) { r[i]=numberRightAnswersPerson(argv[i+1], answers); fprintf(f,"participant %d : %d \n", i+1, r[i]); //write right answer per participant in file } fclose(f); /////////////////////////////////////////////////////////////////// // 3c)1) average value, deviation value, median /////////////////////////////////////////////////////////////////// //average double rAvg=calcAvg(r,numParticipants); printf("average how many right answered question per person %lf\n",rAvg); //standard deviation printf("standard deviation: %lf\n",calcStdDev(rAvg,r,numParticipants)); //median printf("median: %lf\n",calcMedian(r,numParticipants)); printf("\n"); /////////////////////////////////////////////////// // 3b) calculate right answers of all per question /////////////////////////////////////////////////// FILE *f2; int sumRightAnswers[NQUESTIONS]; for(int i=0;i<NQUESTIONS;++i) { sumRightAnswers[i]=0; } f2=fopen("rightanswers_all.txt","w"); fprintf(f2,"number of all right answers per question:\n"); for(int i=0;i<numParticipants; ++i) { if (numberRightAnswersAllPersons(argv[i+1],sumRightAnswers, answers)!=0) { perror("Error reading file"); } } for(int i=0;i<NQUESTIONS;++i) { fprintf(f2,"%c : %d\n",'A'+i,sumRightAnswers[i]); } fclose(f2); //average how many persons answered a single question right double av_all=calcAvg(sumRightAnswers,NQUESTIONS); printf("average how many persons answered a single question right: %lf\n",av_all); //standard deviation printf("standard deviation: %lf\n",calcStdDev(av_all,sumRightAnswers,NQUESTIONS)); //median printf("median: %lf\n",calcMedian(sumRightAnswers,NQUESTIONS)); if(answers!=0) { free(answers); answers=0; } if(r!=0) { free(r); r=0; } return EXIT_SUCCESS; }