このエラーの意味がわかりません。プログラムを実行すると、ユーザーが N を入力するまで継続的にループする必要があります (no more/exit)。何が起こっているのかわかりません。最初の一連の入力の後、ユーザーに「新しい学生を処理しますか?」というプロンプトが表示される前に、プログラムはその例外をスローします。
Geany (クラッシュするだけのエラー定義はありません) と Visual Studio 2010 を使用して実行しました。
誰か助けてくれませんか?
void draw_bar_chart(int student_id[], int percentage[], int size)
{
FILE *report;
int i, j=0, min = 1000000, max = 0, min_pos, max_pos, l;
char s[20];
report = fopen("report2.txt", "a");
fprintf(report, "\n******* BAR CHART (YEARLY TOTAL EXPENSES: YEARLY TOTAL INCOME) *******\n\n");
for (i = 0; i < size; i++)
{
fprintf(report, "%d%c", student_id[i], ' ');
if (percentage[i] > 0){
l = percentage[i]/10; //the lenght of the bar
if ((percentage[i]%10) > 0)
l++;
for (j = 0; j < l; j++)
s[j] = 'x';
s[l+1] = '\0';
} else {
s[0] = '!';
s[1] = '\0';
}
fprintf(report, "%-20s%6c%d%c\n", s, ' ', percentage[j], '%');
if (percentage[j] >= 0)
{
if (percentage[j] < min)
{
min = percentage[j];
min_pos = j;
}
if (percentage[j] > max)
{
max = percentage[j];
max_pos = j;
}
}
}
fprintf(report, "***lowest percentage: %d%c (student ID: %d)\n", min, '%', student_id[min_pos]);
fprintf(report, "***highest percentage: %d%c (student ID: %d)\n", max, '%', student_id[max_pos]);
fclose(report);
}