首页 > 其他 > 详细

Problem B

时间:2020-08-07 11:19:39      阅读:95      评论:0      收藏:0      [点我收藏+]

题目描述:

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

 

输入:

共一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。

 

输出:

从大到小排列的一行整数,每个整数后跟一个空格,最后换行。

 

样例输入:

4
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

链接:

http://codeup.cn/problem.php?cid=100000581&pid=4

 

知识点:

初始化数组方式

memset(array,0,sizeof(array));//将数组所有元素初始化为0

 

代码:

#include<iostream>
#include <cstring>
using namespace std;
int main(){
    int m;
    cin>>m;
    int num[m][m];
    int csum[m],rsum[m];
    int all[2*m+2];
    int count=0;
    memset(csum,0,sizeof(csum));
    memset(rsum,0,sizeof(rsum));
    for(int i=0;i<m;i++){//初始化方阵 
        for(int j=0;j<m;j++){
            cin>>num[i][j];
        }
    }
    /*
    for(int i=0;i<m;i++){
        for(int j=0;j<m;j++){
            cout<<num[i][j]<<" ";
        }
        cout<<endl;
    }
    */
    for(int i=0;i<m;i++){//求每行元素 
        for(int j=0;j<m;j++){
            csum[i]=csum[i]+num[i][j];    
        }
        all[count]=csum[i];
        //cout<<"count:"<<count<<endl;
        //cout<<csum[i]<<" ";
        count++;
        //cout<<"i:"<<i<<endl;
    }
    for(int j=0;j<m;j++){//求每列元素 
        for(int i=0;i<m;i++){
            rsum[j]=rsum[j]+num[i][j]; 
        }
        all[count]=rsum[j];    
        //cout<<"count:"<<count<<endl;
        count++;
    }
    
    int ldiagonal=0,rdiagonal=0;
    for(int i=0;i<m;i++){
        ldiagonal=ldiagonal+num[i][i];//左对角线 
    }
    all[count]=ldiagonal;
    count++;
    for(int i=0;i<m;i++){
        rdiagonal=rdiagonal+num[m-1-i][i];
    }
    all[count]=rdiagonal;
    count++;
    for(int i=0;i<count;i++){
        for(int j=0;j<count-1-i;j++){
            if(all[j]<all[j+1]){
                swap(all[j],all[j+1]);
            }
        }
    }
    //cout<<ldiagonal<<endl;
    //cout<<rdiagonal<<endl;
    //cout<<"count:"<<count<<endl;
    
    for(int i=0;i<count;i++){
        cout<<all[i]<<" ";
    }
    cout<<endl;
    return 0;
} 

结果:

技术分享图片

 

Problem B

原文:https://www.cnblogs.com/ak918xp/p/13451247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!