我不明白这个错误告诉我什么。当我运行程序时,它应该不断循环,直到用户输入 N (不再/退出)。我不明白发生了什么事。在第一组输入之后,在提示用户“你想处理一个新学生”之前,程序会抛出该异常。
我已经使用 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);
}