Печать суммы массива в C - PullRequest
0 голосов
/ 29 марта 2020

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

#include <stdio.h>


double sum(double array[365][8], int i, int j)
{
    double sum = 0;

    for(i = 173; i <= 266; i++)
    {
        for(j = 2; j < 3; j++)
        {
            sum = sum + array[i][2];
        }
    }

    return (sum);

}

int main (void)
{
    int i, j;
    double array[365][8];


    FILE *file;
    file = fopen("data.txt", "r");

    for(i = 1; i <= 365; i++)
    {
        for(j = 0; j <= 7; j++)
        {
            fscanf(file, "%lf \n", &array[i][j]);
        }
    }

    printf("The sum is: %lf", sum(array, i, j));

    return (0);
}

Я не знаю, что еще нужно изменить, чтобы заставить его работать. Может кто-нибудь помочь, пожалуйста?

1 Ответ

1 голос
/ 29 марта 2020

Кроме проверки, если fopen терпит неудачу, как сказал @Jabberwocky в комментариях.

Я думаю, что проблема, скорее всего, здесь:

вы объявляете double array[365][8] но в этом l oop for(i = 1; i <= 365; i++) вы пересекаете границы вашего массива.

Я думаю, что это может помочь

    for(i = 0; i < 365; i++)
    {
        for(j = 0; j <= 7; j++)
        {
            fscanf(file, "%lf \n", &array[i][j]);
        }
    }

PS: тогда вам следует изменить другое число на основе этого.

...