首页 > 解决方案 > 在C中打印数组的总和

问题描述

我正在尝试在二维数组中打印一行的总和,但是这段代码没有返回任何内容。

#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);
}

我不知道还有什么要改变才能让它工作。有人可以帮忙吗?

标签: carraysfunctionsum

解决方案


fopen除了像@Jabberwocky 在评论中所说的那样检查是否失败。

我认为问题很可能在这里:

您声明double array[365][8],但在此循环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:那么你应该在此基础上更改其他数字。


推荐阅读