二维数组的初始化
int x[2][3]={0,0,0,1,1,1} 可在同一行赋初值
int x[2][3]={{0,0,0},{1,1,1}} 不能丢到内部括号之间的逗号
初始化遗漏的元素将自动赋值0
例题
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[100][100];
int m;
while(cin>>m)
{
int b[25]= {0};
int l=0;
int i,j;
int h=0;
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
cin>>a[i][j];
for(i=0,j=0; i<m; i++,j++)//主对角线
{
b[l]=a[i][j];
l++;
}
for(i=0,j=m-1; i<m; i++,j--)//副对角线
{
b[l]=a[i][j];
l++;
}
for(i=0; i<25; i++)
h=h+b[i];
cout<<h<<endl;
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int m;
int x[15][15],y[15][15];
while(scanf("%d",&m)!=EOF)
{
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
scanf("%d",&x[i][j]);
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
scanf("%d",&y[i][j]);
int z[15][15]= {0};
for(int i=0; i<m; i++)//完成矩阵相乘
for(int j=0; j<m; j++)
for(int k=0; k<m; k++)
z[i][j]=z[i][j]+x[i][k]*y[k][j];
for(int i=0; i<m; i++)
for(int j=0; j<m; j++)
{
if(j==m-1)//每行最后一个数后不输出空格
printf("%d\n",z[i][j]);
else
printf("%d ",z[i][j]);
}
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[100][100];
int m,n;
while(cin>>n>>m)
{
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin>>a[i][j];
int i;
long long int h=0;
for(i=0; i<m; i++)
h=h+a[0][i];
for(i=0; i<m; i++)
h=h+a[n-1][i];
for(i=0; i<n; i++)
h=h+a[i][0];
for(i=0; i<n; i++)
h=h+a[i][m-1];
cout<<h-a[0][0]-a[0][m-1]-a[n-1][m-1]-a[n-1][0]<<endl;
}
return 0;
}