#Cprove32~33 二维数组定义及引用一

  • no.1 输出单位矩阵
  • no.2 求数组每一行最小元素
  • no.3 判断对称矩阵

NO.1 输出单位矩阵

在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。根据单位矩阵的特点,任何矩阵与单位矩阵相乘都等于本身
输出a[5][5]单位矩阵

#include <stdio.h>
int main( )
{
    int a[6][6],i,j ;   //数组下标虽然从零开始计算,但是数据可以选择从下标1开始运算输出
    for (i=1; i<6 ; i++)            //第0行与第0列不参与运算与输出
        for (j=1 ; j<6 ; j++)
            a[i][j]=(i/j)*(j/i) ;   //无论i>j还是j>i,(i/j)*(j/i)结果均为0
    for (i=1; i<6 ; i++)
    {
        for (j=1 ; j<6 ; j++)
            printf("%2d",a[i][j]) ; //%2d是为了输出元素间有间隔
        printf("\n");               //每行结束要换行
    }
    return 0;
}

在这里插入图片描述

小结

选择从1开始循环,方便除法运算;
由于第0行与第0列不参与运算,所以定义时行(列)均多1行(列);
输出注意格式,%md可以让格式美观一些;
输出每行注意换行;

NO.2 求数组每行最小元素

#include <stdio.h>
int main( )
{
    int x[2][3]= {5,4,6,10,8,9};
    int m[2],i,j;
    for (i=0; i<2; i++)
    {
        m[i]=x[i][0];   //把第0列元素给一维数组
        for(j=1; j<3; j++)
            if(x[i][j]<m[i])
                m[i]=x[i][j];   //把每行最小元素给一维数组
    }
    for (i=0; i<2; i++)
        printf("%d\n", m[i]);
    for(i=0; i<2; i++)
    {
        for(j=0; j<3; j++)
            printf("%3d",x[i][j]);
        printf("\n");
    }
    return 0;
}

在这里插入图片描述

NO.3 判断对称矩阵

对称矩阵(Symmetric Matrices)是指元素以主对角线为对称轴对应相等的矩阵。在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。

#include <stdio.h>
int main( )
{
    int a[4][4]= {1,2,4,7,2,3,5,8,4,5,6,9,7,8,9,10};
    int i,j,found=0;
    for(i=0; i<4; i++)
        for(j=0; j<=i; j++)
            if(a[i][j]!=a[j][i])
            {
                found=1;
                break;
            }
    if(found)
        printf("No!\n");
    else
        printf("Yes!\n");
    return 0;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值