我有一个问题,我需要从方矩阵的第一个对角线计算偶数之和,但该和必须是一个独立的函数。这是我到目前为止所得到的,但是不会编译:(
代码:
#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]);
}
答案 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