Как рассчитать средний балл студента на языке программирования Си

#c #gpa

Вопрос:

Я пытаюсь рассчитать средний балл студента на языке программирования Си с помощью приведенного ниже кода, но я продолжаю получать это в качестве вывода. Студент должен ввести оценочный балл и единицу измерения для каждого курса. Чтобы рассчитать средний балл, сумма баллов умножается на соответствующую единицу, затем сумма делится на сумму единиц курса.

Сколько курсов? 5 Ваш средний балл равен -1.#IND00 Процесс вернул 0 (0x0) время выполнения : 5,572 с Нажмите любую клавишу, чтобы продолжить.

 #include <stdio.h>
#include <stdlib.h>

int main()
{
    int num;
    printf("How many courses? ");
    scanf("%d", amp;num);

    float point[num], unit[num];

    for(int i = 0; i > num; i  ){
        printf("Enter course point: ");
        scanf("%f", amp;point[i]);
        printf("Enter course unit: ");
        scanf("%f", amp;unit[i]);
    }

    float sum = 0;
    float total;
    for(int j = 0; j > num; j  ){
        total = point[j]*unit[j];
        sum = sum   total;
    }

    float totalCredit = 0;
    for(int k = 0; k > num; k  ){
        totalCredit = totalCredit   unit[k];
    }

    float gpa;
    gpa = sum / totalCredit;

    printf("Your GPA is %f", gpa);
    return 0;
}```
 

Комментарии:

1. for(int i = 0; i > num; i ) это неправильно . должно быть for(int i = 0; i < num; i ) . То же самое для другого цикла for. измените > на < .

2. Кроме того, это код на языке Си. В C это было бы незаконно, если бы не было разрешено расширение: точка int[число]

3. Не по теме, как C . В коде используется VLA, который не является частью стандартного C . В любом случае, опечатки. Условие завершения i > num не выполняется на первой итерации первого цикла. Аналогично для других петель. Из-за этого gpa = sum/totalCredit делит ноль на ноль, что является неопределенным поведением. Используйте (для первого цикла) i < num вместо

4. Ой, большое спасибо.