函数:如何在另一个函数中使用一个函数的元素

Functions: how to use elements of one function in another

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

int m,n,i,j,k,imp_sum, par_sum,temp,a[100][100];

void calc_rand()
{
    srand(time(NULL));
    printf("Number of rows and columns:");
    scanf("%d %d", &m, &n);
    int a[m][n];
    for (i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            a[i][j]=(rand()%25)-5;
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    }
}

void calc_num()
{
    for (i=0; i<n; i++)
    {
        par_sum=0;
        imp_sum=0;
        for(j=0; j<m; j+=2)
        {
            if (a[j][i]<0)
            {
                par_sum=par_sum+abs(a[j][i]);
            }

        }
        printf("\nSum of emelents <0 %d on even position: %d",i+1, par_sum);
        for(j=1; j<m; j+=2)
        {
            if(a[j][i]>0)
            {
                imp_sum=imp_sum+a[j][i];
            }
        }
        printf("\nSum of elements >0 %d on odd position: %d",i+1, imp_sum);
    }

}

int main()
{
    calc_rand();
    calc_num();
    return 0;
}

我是函数的新手,遇到了问题。当试图找出上面我需要的元素的总和时(我在名为 calc_num 的第二个函数中这样做)它总是 returns 我 0,我真的不明白为什么会这样。

calc_rand 中,您正在本地创建一个名为 anew 数组,它屏蔽了全局变量 a。这导致更新本地 a 而不是全局 a.

删除 calc_rand 中的 int a[m][n]; 声明,它将更新全局数组。