可参考以下程序:
int a[5][5];//5*5数组
int i,x,y;//x,y是两个对角线元素的和
......
x=0;
for(i=0;i<5;i++)
{
x += a[i][i];
}
y=0;
for(i=0;i<5;i++)
{
y += a[4-i][i];
}
#include
int main()
{
int k[5][5];
int a,b,n=0;
printf ("请输入数组元素的值);
for (a=0;a<5;a++)
for (b=0;b<5;b++)
{
scanf ("%d",k[a][b]);
if ( ((a+b)==4)||(a==b) ) n+=k[a][b];
}
printf ("这个5*5数组两对角线之和为%d",n);
return 0;
}
#include
int main()
{
int a[5][5],sum=0;
for(int i=0 ; i < 5 ; i++ )
for(int j=0 ; j < 5 ; j++ )
{
scanf("%d",&a[i][j]);
if(i==j || i+j==4 ) sum += a[i][j];
}
printf("%d",sum);
}
因为二维数组在内存中是顺序储存的,故不会两次访问到a[2][2];