您的位置:首页 > 其它

请写出一个程序,对于一个m行,m列的(1<m<10)的方阵,求其每一行,每一列及 主对角线元素之和,最后按照从大到小的顺序依次输出

2013-03-15 09:22 3711 查看
/*2.请写出一个程序,对于一个m行,m列的(1<m<10)的方阵,求其每一行,每一列及

主对角线元素之和,最后按照从大到小的顺序依次输出。

eg 15 8 -2 6

31 24 18 71

-3 -9 27 13

17 21 38 69

输出 159 145 144 135 81 60 44 32 28 27

*/

#include<iostream>

#include<stdio.h>

using namespace std;

void sort(int b[],int n)

{

int temp=0;

for(int i=n-1;i>=0;i--)

{

for(int j=0;j<i;j++)

{

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

}

}

void main()

{

int a[4][4]={{15,8,-2,6},{31,24,18,71},{-3,-9,27,13},{17,21,38,69}};

for(int i=0;i<4;i++)

{

for(int j=0;j<4;j++)

{

cout<<a[i][j]<<" ";

}

cout<<endl;

}

int b[100];

int s=0,t=0,p=0;

for(i=0;i<4;i++)

{

for(int j=0;j<4;j++)

{

s+=a[i][j];

}

b[i]=s;

s=0;

}

for(int k=0;k<4;k++)

{

for(int w=0;w<4;w++)

{

p+=a[w][k];

}

b[i+k]=p;

p=0;

}

for(int m=0;m<4;m++)

{

t+=a[m][m];

}

b[i+k]=t;

t=0;

for(int q=0;q<4;q++)

{

t+=a[4-q-1][q];

}

b[i+k+1]=t;

sort(b,i+k+1);

for(int y=0;y<i+k+2;y++)

cout<<b[y]<<endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐