C++数组练习

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;
}

发布了57 篇原创文章 · 获赞 2 · 访问量 1867

猜你喜欢

转载自blog.csdn.net/weixin_43476969/article/details/103338584