#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
srand((unsigned)time(NULL));//为随机函数提供种子
int a[5][5],sum1=0,sum2=0;
int main_sum=0;//主对角线元素和
int minor_sum=0;//副对角线元素和
int side_sum=0;//靠边元素和
int intside_sum=0;//内部元素和
int every_sum=0;//所有元素和
int max1=0,max2=0;//最大值下标
int min1=0,min2=0;//最小值下标
int up_sum=0;//上三角和
int down_sum=0;//下三角和
int row_sum[5];//每一行之和
int col_sum[5];//每一列之和
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
a[i][j]=rand()%10;//1~9
cout<<a[i][j]<<" ";//输出矩阵元素
if(j==4)
cout<<endl;
}
cout<<endl;
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
every_sum+=a[i][j];
if(i==j)
main_sum+=a[i][j];
if(i+j==4)
minor_sum+=a[i][j];
if(j==0||j==4||i==0||i==4)
{
side_sum+=a[i][j];
if(i==5&&j==5)
side_sum-=a[0][0]+a[4][0]+a[4][4]+a[0][4];
}
if(i!=4&&i!=0&&j!=0&&j!=4)
intside_sum+=a[i][j];
if(a[i][j]>a[max1][max2])
{
max1=i;
max2=j;
}
if(a[i][j]<a[min1][min2])
{
min1=i;
min2=j;
}
if(j>i)
up_sum+=a[i][j];
if(j<i)
down_sum+=a[i][j];
}
for(int i=0;i<5;i++)
{
sum1=0,sum2=0;
for(int j=0;j<5;j++)
{
sum1+=a[i][j];
sum2+=a[j][i];
}
row_sum[i]=sum1;
col_sum[i]=sum2;
}
cout<<"所以元素和:"<<every_sum<<endl;
cout<<"主对角线之和:"<<main_sum<<endl;
cout<<"副对角线之和:"<<minor_sum<<endl;
cout<<"靠边元素之和:"<<side_sum<<endl;
cout<<"内部元素之和:"<<intside_sum<<endl;
cout<<"最大值下标:"<<max1<<" "<<max2<<endl;
cout<<"最小值下标:"<<min1<<" "<<min2<<endl;
cout<<"矩阵下三角之和"<<down_sum<<endl;
cout<<"矩阵上三角之和"<<up_sum<<endl;
for(int i=0;i<5;i++)
cout<<"第"<<i+1<<"行元素之和"<<row_sum[i]<<endl;
cout<<endl;
for(int i=0;i<5;i++)
cout<<"第"<<i+1<<"列元素之和"<<col_sum[i]<<endl;
return 0;
}
老哥我才大二刚学c语言你写的我好多看不懂0.0
这些都是基础的算法,不难啊,就是有点多,有点乱;你先把题的意思理解透彻;不是有9个功能吗,一个一个功能看,一个一个理解;别整体看,整体看,我都感觉有点懵;