IDE:codeblocks
日期:2019/12/1
功能:数组练习
#include <iostream>
#include <cmath>
using namespace std;
void input(int [][4],int size);
void output(int [][4],int size);
int f1(int [][4],int size);
int f2(int [][4],int size);
int f3(int [][4],int size,int & location);
int f4(int [][4],int size);
int main(void)
{
int arr[4][4],location=0,maxi;
cout<<"请输入4x4数组的16个元素值"<<endl;
input(arr,4);
output(arr,4);
cout<<"对角线元素和为"<<f1(arr,4)<<endl;
cout<<"对角线上行列下标均为偶数的元素积为"<<f2(arr,4)<<endl;
maxi=f3(arr,4,location);
cout<<"对角线上最大元素为"<<maxi<<','<<"其下标为"<<location<<','<<location<<endl;
cout<<"最外一圈的元素和为"<<f4(arr,4)<<endl;
return 0;
}
void input(int a[][4],int size)
{
int i,j;
for(i=0;i<size;i++)
{
for(j=0;j<4;j++)
{
cin>>a[i][j];
}
}
}
void output(int a[][4],int size)
{
int i,j;
for(i=0;i<size;i++)
{
for(j=0;j<4;j++)
{
cout<<a[i][j]<<'\t';
}
cout<<endl;
}
}
int f1(int a[][4],int size)
{
int i,sum=0;
for(i=0;i<size;i++)
sum+=a[i][i];
return sum;
}
int f2(int a[][4],int size)
{
int i,sum=1;
for(i=0;i<size;i++)
{
if(i%2==0)
sum*=a[i][i];
}
return sum;
}
int f3(int a[][4],int size,int & location)
{
int i,maximun=0;
for(i=0;i<size;i++)
{
if(a[i][i]>maximun)
{
maximun=a[i][i];
location=i;
}
}
return maximun;
}
int f4(int a[][4],int size)
{
int i,sum=0;
for(i=0;i<4;i++)
sum+=a[0][i]+a[3][i];
for(i=1;i<size-1;i++)
sum+=a[i][0]+a[i][3];
return sum;
}