I run it with my compiler and the code crashed without any error. Anything wrong with this code? Please help me out. Thank you guys.
Code:/*
* A sample program to read-from and write-to files. Also shows how to
* send a file as a parameter and display error messages to standard
* error.
*/
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int
main ( void )
{
void rmNl ( char s[] );
int lineWithBlanks ( char *s );
FILE *fin, *fout;
STUDENT stuArr[MAX_STUDENTS];
int numItems = 0; // counter to keep track of items processed
int i, FinalGrade;
/* Open file to read input data */
if ( ( fin = fopen ( "input.dat", "r" ) ) == NULL ) {
fprintf ( stderr, "Could not open file input.dat\n" );
}
else {
for(i=1;i<=MAX_STUDENTS;i++)
fscanf(fin,"%s%s\n%d\n%d%d%d%d%d\n%d%d%d\n",stuArr[i].fName,stuArr[i].lName,&stuArr[i].id,stuArr[i].hw[0],&stuArr[i].hw[1], &stuArr[i].hw[2],&stuArr[i].hw[3], &stuArr[i].hw[4],&stuArr[i].exm[0],&stuArr[i].exm[1],&stuArr[i].exm[2]);
}
fclose(fin);
/* Open file for writing output */
if ( ( fout = fopen ( "output.dat", "w" ) ) == NULL ) {
fprintf ( stderr, "Could not open file output.dat\n" );
}
else {
fprintf(fout, "%s\n", "==============================================");
fprintf(fout, "%s\n", " PRINTING ALL RECORDS ");
fprintf(fout, "%s\n", "==============================================");
fprintf(fout, "%-10s%-10s%-8s%-8s%-8s%s\n","Student","Name","Id","HAvg","EAvg","Grade");
while (!feof(fin)) {
fprintf( fout,"%-10s%-10s%-8d%-8.2f%-8.2f",stuArr[i].fName,stuArr[i].lName,&stuArr[i].id,stuArr[i].hwAvg,&stuArr[i].exmAvg);
stuArr[i].hwAvg = (stuArr[i].hw[0] + stuArr[i].hw[1] + stuArr[i].hw[2] + stuArr[i].hw[3] + stuArr[i].hw [4]) / 5;
stuArr[i].exmAvg = (stuArr[i].exm[0] + stuArr[i].exm[1] + stuArr[i].exm[2]) / 3;
FinalGrade = (stuArr[i].hwAvg * 0.4) + (stuArr[i].exmAvg * 0.6);
if (FinalGrade >= 85 && FinalGrade <= 100.00) stuArr[i].grade = 'A';
else if (FinalGrade >= 75 && FinalGrade <= 84) stuArr[i].grade = 'B';
else if (FinalGrade >= 60 && FinalGrade <= 74) stuArr[i].grade = 'C';
else if (FinalGrade >= 50 && FinalGrade <= 59) stuArr[i].grade = 'D';
else if (FinalGrade < 50) stuArr[i].grade == 'F';
fprintf( fout,"%c\n", stuArr[i].grade);
}
}
fclose(fout);
return 0;
}