矩阵的求和函数

时间:2018-10-23 11:18:28

标签: c

我有一个问题,我需要从方矩阵的第一个对角线计算偶数之和,但该和必须是一个独立的函数。这是我到目前为止所得到的,但是不会编译:(

代码:

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

void suma(int m[5][5])
{
    int i,j,s=0,m[5][5];
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
        {
            if(i==j&&m[i][j]%2==0)
            {
                s = s + m[i][j];
            }
        }
    printf("\n\nSuna numerelor pare de pe prima diagonala este:\t");
    printf("%d",s);
}

int main()
{
    int i,j,s=0,m[5][5];
    printf("Introduceti matricea \n");
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
        {
            scanf("%d",&m[i][j]);
        }
    printf("\nMatricea dvs este:\n");
    for(i=0;i<5;i++)
    {
        printf("\n");
        for(j=0;j<5;j++)
        {
            printf("\t%d",m[i][j]);
        }
    }

    suma(m[i][j]);

}

1 个答案:

答案 0 :(得分:0)

使用GCC compiler编译代码时,以下选项<source>: In function 'void suma(int (*)[5])': <source>:6:23: error: declaration of 'int m [5][5]' shadows a parameter int i,j,s=0,m[5][5]; ^ <source>: In function 'int main()': <source>:38:16: error: invalid conversion from 'int' to 'int (*)[5]' [-fpermissive] suma(m[i][j]); ~~~~~~^ <source>:4:15: note: initializing argument 1 of 'void suma(int (*)[5])' void suma(int m[5][5]) ~~~~^~~~~~~ <source>:21:13: warning: unused variable 's' [-Wunused-variable] int i,j,s=0,m[5][5]; ^ 会产生以下警告:

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

void suma(int m[5][5])
{
    int i, s = 0;
    for(i=0;i<5;i++)
        if(m[i][i]%2==0)
            s = s + m[i][i];
    printf("\n\nSuna numerelor pare de pe prima diagonala este:\t");
    printf("%d",s);
}

int main()
{
    int i,j,m[5][5];
    printf("Introduceti matricea \n");
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            scanf("%d",&m[i][j]);

    printf("\nMatricea dvs este:\n");
    for(i=0;i<5;i++)
    {
        printf("\n");
        for(j=0;j<5;j++)
            printf("\t%d",m[i][j]);
    }

    suma(m);
}

消除这些错误/警告后,您的代码现在将是:

null