c program test wrong

1
1: #include <stdio.h> 2: void main ( ) 3: { 4: char Correct [ 6 ] ; 5: char Answer ; 6: int Student , Mark ; 7: int MinMark , MaxMark ; 8: double Avg ; 9: Student = 0 ; 10: fil = fopen ( "Answers.txt" , "r" ) ; 11: for ( i = 1 ; i <= 5 ; i ++ ) fscanf ( fil , "%c" , & ( Correct [ i ] ) ) ; 12: fscanf ( fil , "%c" , & Answer ) ; 13: while ( feof ( fil ) ) 14: { 15: Mark = 0 ; 16: for ( i = 1 ; i <= 5 ; i ++ ) 17: { 18: fscanf ( fil , "%c" , Answer ) ; 19: if ( Answer == Correct [ i ] ) Mark += 4 ; 20: else if ( Answer == 'x' ) Mark -= 1 ; 21: } 22: fscanf ( fil , "%c" , & Answer ) ; 23: Avg += Mark ; 24: if ( Student == 1 ) 25: MinMark = Avg ; 26: Avg = MaxMark ; 27: else 28: { 29: if ( Mark > MaxMark ) MaxMark = mark ; 30: if ( Mark > MinMark ) MinMark = mark ; 31: } 32: printf ( "Student: %lg Mark: %d\n" , Student , Mark ) ; 33: } 34: Avg / Student ; 35: printf ( "Average Mark is: %lg\n" , Avg ) ; 36: writef ( "Maximum=%d Minimum=%d\n" , MaxMark , MinMark ) ; 37: }

Upload: mohamed-sameh

Post on 22-Dec-2015

215 views

Category:

Documents


0 download

DESCRIPTION

a program to calculate students marks. the program is wrong and needs to be corrected

TRANSCRIPT

Page 1: c program test wrong

1: #include <stdio.h>2: void main ()3: {4: char Correct [6];5: char Answer ;6: int Student , Mark;7: int MinMark , MaxMark;8: double Avg;9: Student = 0;

10: fil = fopen ("Answers.txt","r");11: for(i =1;i <=5;i ++)fscanf (fil ,"%c",&(Correct [i ]));12: fscanf (fil ,"%c",&Answer );13: while(feof (fil ))14: {15: Mark=0;16: for(i =1;i <=5;i ++)17: {18: fscanf (fil ,"%c",Answer );19: if(Answer ==Correct [i ])Mark +=4;20: else if(Answer =='x' )Mark -=1;21: }22: fscanf (fil ,"%c",&Answer );23: Avg += Mark;24: if(Student ==1)25: MinMark = Avg;26: Avg = MaxMark;27: else28: {29: if(Mark > MaxMark)MaxMark = mark;30: if(Mark > MinMark )MinMark = mark;31: }32: printf ("Student: %lg Mark: %d\n",Student , Mark);33: }34: Avg/Student ;35: printf ("Average Mark is: %lg\n",Avg);36: writef ("Maximum=%d Minimum=%d\n",MaxMark,MinMark );37: }