예제 #1
0
파일: grade_list.c 프로젝트: jenzie/se350
/* 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;
}
예제 #2
0
파일: ue01.c 프로젝트: ninaa123/ue01_bsp3
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;
}