Matrix

博客围绕C语言矩阵运算展开,包含计算n*n矩阵两条对角线上元素和、MxN矩阵周边元素和、矩阵转置、求矩阵最大值及行号列号等程序示例,给出了题目描述、输入输出要求及相应代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1):

题目描述

现有一个n*n(n最大为10)的整数矩阵,n的值通过键盘输入确定,设计一个程序输入矩阵中的各元素值,计算矩阵中两条对角线上所有元素的和并输出。

输入

输入有多组样例。

首先输入一个n,

然后输入一个n*n的矩阵。

输出

输出和。

提示:当n为奇数时两条对角线存在一个交叉元素,在计算时需避免交叉元素的重复计算。

样例输入

<span style="color:#333333">2
1 2
3 4
3
1 2 3
1 2 3
1 2 3
</span>

样例输出

 

<span style="color:#333333">10
10</span>

 T:

#include<stdio.h>
int main()
{
    int a[10][10],n,i,j,sum;
    while(scanf("%d",&n)!=EOF&&n<=10)
    {   sum=0;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                
                if(i==j||i+j==n-1)---------------------当n为奇数时,,交叉元素同时满足"i==j||i+j==n-1"。但因为只循环一次,所以程序并没有重复计算交叉元素。

                {
                    sum=sum+a[i][j];
                }
                
                
            }
        }
        
        printf("%d\n",sum);
        
        
        
    }
    return 0;

}


answer:

3

1 2 3

4 5 6

7 8 9

25

 

(2):C语言输入一个n×n的整数矩阵,分别计算两个对角线的和

#include<stdio.h>
int main()
{
    int a[10][10],n,i,j,sum,sum1,sum2;
    while(scanf("%d",&n)!=EOF&&n<=10)
    {   sum=0,sum1=0,sum2=0;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                
                if(i==j)
                {
                    sum1=sum1+a[i][j];
                }
                if(i+j==n-1)
                {
                    sum2=sum2+a[i][j];
                }

                
            }
        }
        
        printf("%d\n",sum1);
        printf("%d\n",sum2);
        
        
    }
    return 0;

}

answer:

3

1 2 3

4 5 6

7 8 9

15

15

(3):MxN矩阵周边元素之和。

#include<stdio.h>
int main()
{
    int a[10][10],n,i,j,sum;
    while(scanf("%d",&n)!=EOF&&n<=10)
    {   sum=0;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                
                if(i==0||j==0||i==n-1||j==n-1)
                {
                    sum=sum+a[i][j];
                }
                
                
            }
        }
        
        printf("%d\n",sum);
        
        
        
    }
    return 0;

}
(4):矩阵转置

#include<stdio.h>
int main()
{
    int a[10][10],n,i,j,t,b[10][10];
    while(scanf("%d",&n)!=EOF&&n<=10)
    {   
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                
            }
        }
        
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                if(j==n-1)
                printf("%d\n",a[j][i]);
                else printf("%d",a[j][i]);

                
            }
        }
        
        
        
        
        
    }
    return 0;

}
 

(5):求矩阵最大值,并输出其行号和列号。

#include<stdio.h>
int main()
{
    int a[10][10],n,i,j,max,h,l;
    while(scanf("%d",&n)!=EOF&&n<=10)
    {   
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                
            }
        }
        max=a[0][0];
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                if(max<a[i][j]) 
                {
                max=a[i][j];
                h=i;
                l=j;
                }
            }
        }
        printf("%d\n",max);
        printf("%d %d\n",h,l);
        
        
        
        
        
    }
    return 0;

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值