| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2948 人关注过本帖
标题:怎么求矩阵各行各列的和(新人)
只看楼主 加入收藏
sheng2411
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-5-4
结帖率:66.67%
收藏
已结贴  问题点数:5 回复次数:5 
怎么求矩阵各行各列的和(新人)
怎么求矩阵各行各列的和(新人)
2016-05-12 09:50
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:1 
你要多大的矩阵?3*3还是4*4呢
方法就是按照定义一个二维数组,按数组下标计算就行了。给你个3*3矩阵的例子参考下:
#include <stdio.h>
int main()
{
    int arr[3][3] = {0};
    int i,j,n=0;
    int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0;
       printf("请输入9个整数:\n");
    for(i=0;i<3;i++)
    {
       for(j=0;j<3;j++)
        {
            scanf("%d",&arr[i][j]);                                            
        }   
     }
    printf("3*3矩阵如下:\n\n");
    for(i=0;i<3;i++)
    {
       for(j=0;j<3;j++)
        {
            printf("arr[%d][%d]=%d\t",i,j,arr[i][j]);                                            
            n++;
            if(n%3==0)
                printf("\n\n");
        }   
     }
    for(j=0;j<3;j++)
    {
        sum1=sum1+arr[0][j];
        sum2=sum2+arr[1][j];                                 
        sum3=sum3+arr[2][j];
     }   
    for(i=0;i<3;i++)
     {
        sum4=sum4+arr[i][0];
        sum5=sum5+arr[i][1];                                 
        sum6=sum6+arr[i][2];
      }
    printf("3*3矩阵第一行的和:%d\n\n",sum1);
    printf("3*3矩阵第二行的和:%d\n\n",sum2);                                 
    printf("3*3矩阵第三行的和:%d\n\n",sum3);                                 
    printf("3*3矩阵第一列的和:%d\n\n",sum4);
    printf("3*3矩阵第二列的和:%d\n\n",sum5);                                 
    printf("3*3矩阵第三列的和:%d\n\n",sum6);     
    return 0;   
}


[此贴子已经被作者于2016-5-12 11:55编辑过]

2016-05-12 11:10
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:2 
举个例子:

程序代码:
#include <stdio.h>
#define M 10
#define N 10

int main()
{
    int i, j, count, a[M][N] = { 1,2,3,4,5,6,7,8,9,10 };//矩阵赋值
    
    for (i = 0; i < M; i++)
    {
        printf("第%d行的和:",i);
        count = 0;
        for (j = 0; j < N; j++)
        {
            count += a[i][j];
        }
        printf("%d\n", count);
    }

    for (i = 0; i < N; i++)
    {
        printf("第%d列的和:", i);
        count = 0;
        for (j = 0; j < M; j++)
        {
            count += a[j][i];
        }
        printf("%d\n", count);
    }
    return 0;
}
2016-05-12 11:11
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:2 
给你个可以修改的例子,N1*N2的矩阵,直接修改N1 N2值就行了:
程序代码:
#include <stdio.h>
#define N1 3
#define N2 4
int main()
{
    int arr[N1][N2] = {0};
    int i,j,n=0;
    int m1=N1,m2=N2;
    int sum=0;
    printf("请输入%d行,%d列共%d个整数:\n",m1,m2,m1*m2);
    for(i=0;i<N1;i++)
    {
       for(j=0;j<N2;j++)
        {
            scanf("%d",&arr[i][j]);                                            
        }   
     }
    printf("%d*%d矩阵如下:\n\n",m1,m2);
    for(i=0;i<N1;i++)
    {
       for(j=0;j<N2;j++)
        {
            printf("arr[%d][%d]=%d\t",i,j,arr[i][j]);                                            
            n++;
            if(n%N2==0)
                printf("\n\n");
        }   
     }
    for(i=0;i<N1;i++)
    {
        for(j=0;j<N2;j++)
        {
             sum=sum+arr[i][j];            
        }   
        printf("%d*%d矩阵第%d行的和:%d\n\n",m1,m2,i+1,sum);
        sum=0;
    }    
    for(j=0;j<N2;j++)
    {
        for(i=0;i<N1;i++)
        {
             sum=sum+arr[i][j];       
        }  
        printf("%d*%d矩阵第%d列的和:%d\n\n",m1,m2,j+1,sum);
        sum=0;
    }
    return 0;    
}


[此贴子已经被作者于2016-5-14 11:42编辑过]

2016-05-12 11:19
sheng2411
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 2楼 wanglianyi1
5行7列
2016-05-13 23:35
sheng2411
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-5-4
收藏
得分:0 
谢谢
2016-05-13 23:36
快速回复:怎么求矩阵各行各列的和(新人)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031151 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved