这里我是想用字符所在的行数放到计算中,但是出现了这个问题,编译器就看不到这些字符了,就不能返回相应的行数,这个问题我苦恼了很久,网上说在监视名字那里后面加上 s8 也无济于事。 了解应该怎么办的人请不吝赐教呀!
下面是程序:
#include <stdio.h>
#include <ctype.h>
float compute_GPA(char[], int);
int main(void)
{
char ch;
char grades[10] = { '\0' };
printf("\n\t Input your 10 grades: ");
int index = 0;
while ((ch = getchar()) != '\n') {
if (ch == ' ') {
continue;
}
grades[index++] = toupper(ch);
}
printf("\n\t GPA: %.2f ", compute_GPA(grades, 10));
printf("\n\n");
return 0;
}
float compute_GPA(char grade[], int length)
{
int value = 0;
char grade_value[5][1] = {
{'F'},
{'D'},
{'C'},
{'B'},
{'A'}
};
for (int i = 0; i < length; i++) {
for (int j = 0; j < 5; j++) {
if (grade[i] == grade_value[j]) {
value += j;
}
}
}
return ((float)value / (float)length);
}