エラーは出てないのですが、2つ目のif文のBのところで「例外が発生しました」と出てきます。キーボード入力はできるのですがファイルに出力できません。どうすればいいでしょうか。
初心者であまり理解できてません。
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char name[21];
char number;
int scole;
}person;
int sum;
float ave;
void test( person p[ ], int n );
int main(void)
{
int i;
person p[ 3 ];
FILE* fp;
if((fp=fopen("input.txt","wt"))==NULL)
{
printf("ファイルオープンエラー\n");
exit(0);
}
for( i=0; i<3; i++)
{
printf("名前 番号 点数>");
scanf("%s %s %d", p[ i ].name, &p[ i ].number, &p[ i ].scole );
}
for( i = 0; i < 3; i++ )
{
if( p[ i ].scole >= 90 )
{
fprintf( fp,"A %s %s %5.1d\n", p[ i ].name, p[ i ].number, p[ i ].scole );
}
if( p[ i ].scole <90 && p[ i ].scole>=80 )
{
fprintf( fp,"B %s %s %5.1d\n", p[ i ].name, p[ i ].number, p[ i ].scole );
}
if( p[ i ].scole <80 && p[ i ].scole>=60 )
{
fprintf( fp, "C %s %s %5.1d\n", p[ i ].name, p[ i ].number, p[ i ].scole );
}
if( p[ i ].scole <60)
{
fprintf( fp, "D %s %s %5.1d\n", p[ i ].name, p[ i ].number, p[ i ].scole );
}
}
test(p,3);
fprintf(fp,"平均点は%f点",ave);
fclose(fp);
return 0;
}
void test( person p[ ], int n )
{
int i;
for( i = 0; i < n; i++ )
{
sum+=p[ i ].scole;
ave=sum/3;
}
}