精华内容
下载资源
问答
  • c语言矩阵

    千次阅读 2018-09-11 20:04:23
    遍历矩阵a(原矩阵),发现有0的就在b的此行此列中插入0 // // main.c // test // // Created by 神威 on 2018/9/11. // Copyright © 2018年 神威. All rights reserved. // #include <stdio.h> #de....

     

    思路:开辟一个新的同样规格的矩阵b,并将其全部置1.

    遍历矩阵a(原矩阵),发现有0的就在b的此行此列中插入0

    //
    //  main.c
    //  test
    //
    //  Created by 神威 on 2018/9/11.
    //  Copyright © 2018年 神威. All rights reserved.
    //
    #include <stdio.h>
    #define M 6
    #define N 5
    int main(int argc, const char * argv[]) {
        int **addOne(int a[M][N]);
        int i,j;
        int a[M][N] = {
            0,1,1,0,1,
            1,1,1,0,1,
            1,1,1,1,1,
            1,1,1,0,1,
            1,1,0,1,0,
            1,1,1,1,1
        };
        printf("\n调用函数之后:\n");
        int **b = addOne((int **)a);
        for(i=0;i<M;i++){
            for(j=0;j<N;j++)
                printf("%d\t",*((int *)b+N*i+j));
            printf("\n");
        }
        return 0;
    }
    int **addOne(int a[M][N]){
        int **b =(int **)malloc(M*sizeof(int *));//先申请M个指针型字节的空间
        for (int i=0;i<M;i++)
            b[i]=(int *)malloc(N*sizeof(int));//然后依次按一维申请
        int i,j,x,y;
        for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                *((int *)b+N*i+j)=1;
        for(i=0;i<N;i++){
            for(j=0;j<N;j++){
                if(a[i][j]==0){
                    for(x=0;x<M;x++)
                        *((int *)b+N*x+j) = 0;
                    for(y=0;y<N;y++)
                        *((int *)b+N*i+y) = 0;
                }
            }
        }
       
        return b;
    }
    

    运行结果:

     

    展开全文
  • C语言矩阵转置

    2013-01-01 10:47:12
    c语言矩阵转置 要求写期末论文的同学可以看看
  • c语言 矩阵转置Here is the program for transpose of matrix in C. 这是在C中转置矩阵的程序。 We first read a matrix of size mxn and then find its transpose by just interchanging the rows and columns i....

    c语言 矩阵转置

    Here is the program for transpose of matrix in C.

    这是在C中转置矩阵的程序。

    We first read a matrix of size mxn and then find its transpose by just interchanging the rows and columns i.e. rows become columns and columns become rows.

    我们首先读取大小为mxn的矩阵,然后通过仅交换行和列来找到其转置,即行变成列,列变成行。

    C语言中的矩阵转置 (Transpose of Matrix in C)

    #include<stdio.h>
     
    int main()
    {
    	int a[5][5],i,j,m,n;
    	
    	printf("How many rows?");
    	scanf("%d",&n);
    	printf("How many columns?");
    	scanf("%d",&m);
    	
    	printf("\nEnter the matrix:\n");
    	for(i=0;i<m;++i)
    		for(j=0;j<n;++j)
    			scanf("%d",&a[i][j]);
    			
    	printf("\nTranspose of given matrix:\n");
    	
    	for(i=0;i<m;++i)
    	{
    		for(j=0;j<n;++j)
    			printf("%d ",a[j][i]);
    		
    		printf("\n");
    	}
     
    	return 0;
    }

    Output

    输出量

    How many rows?3 How many columns?3

    多少行?3 多少行?3

    Enter the matrix: 1 2 3 4 5 6 7 8 9

    输入矩阵: 1 2 3 4 5 6 7 8 9

    Transpose of given matrix: 1 4 7 2 5 8 3 6 9

    给定矩阵的转置: 1 4 7 2 5 8 3 6 9

    翻译自: https://www.thecrazyprogrammer.com/2013/07/c-program-to-read-matrix-of-size-mxn.html

    c语言 矩阵转置

    展开全文
  • C语言矩阵转置.docx

    2020-01-08 07:38:11
    C语言矩阵转置 本实例是利用数组解决线性代数中的矩阵转置问题 设有一矩阵为 mn 阶即 m 行 n 列第 i 行 j 列的元素是 a(i,j)需要将该矩阵转置为 nm 阶的矩阵使其中元素满足 b(j,i)=a(i,j) 算法思想 由数学知识可知将...
  • C语言 矩阵相乘 矩阵转置 //求转置矩阵 void Transpose2(double a[][MAXSIZE], double b[][MAXSIZE], int row, int col); void Transpose1to2(double a[MAXSIZE], double b[][MAXSIZE]); //显示矩阵 void display...
  • C语言 矩阵输出

    矩阵输出专练

    好家伙,其实就是找规律

    按规定输出矩阵

    编程实现显示如下形式的数字:

    1 0 0 0 0 0
    2 1 0 0 0 0
    3 2 1 0 0 0
    4 3 2 1 0 0
    5 4 3 2 1 0
    6 5 4 3 2 1

    #include <stdio.h>
    int main (void)
    {
        int a[6][6]={0},i,j;
        for (i=0;i<6;i++)
        {
            for (j=0;j<i+1;j++)
            {
                a[i][j]=i+1-j;
            }
        }
        for (i=0;i<6;i++)
        {
            for (j=0;j<6;j++)
            {
                printf("%d ",a[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    

    输出n阶左上拐矩阵

    编程输出n阶左上拐矩阵
    例:
    输入

    5

    输出

    1 1 1 1 1
    1 2 2 2 2
    1 2 3 3 3
    1 2 3 4 4
    1 2 3 4 5

    #include <stdio.h>
    int main (void)
    {
        int n,i,j;
        scanf("%d",&n);
        int a[n][n];
        for (i=0;i<n;i++)
        {
            for (j=i;j<n;j++)
            {
                a[i][j]=i+1;
            }
        }
        for (j=0;j<n;j++)
        {
            for (i=j;i<n;i++)
            {
                a[i][j]=j+1;
            }
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                printf("%d ",a[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    

    蛇形矩阵

    老经典题目了
    例:
    蛇形矩阵样例

    一开始没想到,参考了别人的思路

    #include <stdio.h>
    int main (void)
    {
        int n,i,j,k=1,m=1;    //k为方向
        scanf("%d",&n);
        int a[n][n];
        i=0;
        j=n-1;
        a[i][j]=m;
        while (m!=n*n)
        {
            if (k==1)    //方向:向左移动
            {
                j--;
                a[i][j]=++m;
                if (i==0)
                {
                    k=2;
                }
                else if (i==n-1)
                {
                    k=3;
                }
            }
            else if (k==2)    //向斜右下方移动
            {
                i++;
                j++;
                a[i][j]=++m;
                if (j==n-1&&i!=n-1)
                {
                    k=4;
                }
                else if (j!=n-1&&i!=n-1)
                {
                    k=2;
                }
                else if (i==n-1)
                {
                    k=1;
                }
            }
            else if (k==3)    //向斜左上方移动
            {
                i--;
                j--;
                a[i][j]=++m;
                if (i!=0&&j!=0)
                {
                    k=3;
                }
                else if (i==0&&j!=0)
                {
                    k=1;
                }
                else if (j==0)
                {
                    k=4;
                }
            }
            else if (k==4)    //向正下方移动
            {
                i++;
                a[i][j]=++m;
                if (j==n-1)
                {
                    k=3;
                }
                else if (j==0)
                {
                    k=2;
                }
            }
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                printf("%-2d ",a[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    

    注意:
    数组千万不能越界
    好家伙,今天没有去图书馆,太罪恶了。

    时间:2020/12/5 18:07

    展开全文
  • c语言矩阵运算程序

    2012-09-14 22:37:22
    c语言矩阵运算程序,简单的加减乘除运算,用c语言实现
  • 主要介绍了C语言矩阵连乘 (动态规划)详解的相关资料,需要的朋友可以参考下
  • c语言矩阵的乘法

    2020-05-08 10:59:52
    c语言矩阵的乘法 #include<stdio.h> int main() { int a[2][4], b[4][3], c[2][3]; int i, j, k, sum; 在这里插入代码片 printf(“输入一个2×4的矩阵:\n”); for(i=0;i<2;i++) //处理矩阵a中的一行中各...

    矩阵的乘法:

    两个矩阵只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。

    运算规则:

    将第一个矩阵的第i行的每个元素分别乘上第二个矩阵第j列的每个元素然后进项相加,得到的结果就为新矩阵的第i行第j列的元素。

    算法步骤:

    1、首先我们要定义三个二维数组来存储第一个矩阵、第二个矩阵和相乘后得到的新矩阵。
    2、对第一个、第二个矩阵的每个进行赋值(要注意的是我们需要让第一个矩阵的列数等于第二个矩阵的行数),然后将其打印出来。
    3、使用for循环语句,先遍历第二个矩阵的第j列的每一个元素,然后将其与第一个元素的第i列的每一个元素进行相乘并相加。将其运算后的结果放在对应第i行第j列的新数组中。
    4、再利用for循环将得到的新数组进行一个元素一个元素的输出。

    #include<stdio.h>
     int main()
    {   int a[2][4], b[4][3], c[2][3];
        int i, j, k, sum; 
        printf("输入一个2×4的矩阵:\n"); 
        for(i=0;i<2;i++)                    //处理矩阵a中的一行中各元素
        	for(j=0;j<4;j++)               //处理矩阵a中某一列中各元素
    			scanf("%d",&a[i][j]);   //输入数据
    	printf("输入一个4×3的矩阵;\n"); 
    	for(i=0;i<4;i++)                   //处理矩阵b中的一行中各元素
    		for(j=0;j<3;j++)               //处理矩阵b中某一列中各元素
    			scanf("%d",&b[i][j]);    //输入数据
    	for(i=0;i<2;i++)                 //对矩阵c进行处理
    	{	for(j=0;j<3;j++)             
    		{	sum=0;
    			for(k=0;k<4;k++)   //矩阵c中每一个元素的循环计算
    			{   
    			  sum+=a[i][k]*b[k][j]; //对矩阵c中的某一元素进行计算
    			}
    			c[i][j]=sum;           //给矩阵c中的某一元素进行赋值
    		}	
    	}
    	printf("得到一个2×3的矩阵:\n");
    	for(i=0;i<2;i++)            //输出矩阵c
    	{
    		for(j=0;j<3;j++)	 
     			printf("%5d",c[i][j]);
     		printf("\n");
    		 }
    }
    

    在这里插入图片描述以上的代码中只是一个特殊的例子,我们可以将2×4和4×3的矩阵改变成任意的n×m的矩阵

    展开全文
  • C语言 矩阵的转置及矩阵的乘法 //凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 1.矩阵的转置 1 #include<stdio.h> 2 #define N 2 3 #define M 3 4 void main(){ 5 int i,j,a[N][M],b[M]...
  • c语言矩阵顺时针顺序排列 任意输入均可满足 详细解释
  • C语言矩阵矩阵翻转输出题干解题思路 矩阵翻转输出 题干 1.第一行输入两个整数m,n.来确定矩阵的大小 2.输入一个m行n列的矩阵,输出水平翻转或竖直翻转后的结果 如:输入 123456789(A) \begin{matrix} 1&2&3\...
  • C语言矩阵运算

    2019-05-02 22:19:55
    /*运行环境codeBlocks*/ /*C语言*/ #include #include #define M 3 #define N 3 #define m 3 #define n 3 #define P 3 #define Q 2
  • C语言矩阵N*N旋转的算法C语言矩阵N*N旋转的算法完整源码(定义,实现,main函数测试) C语言矩阵N*N旋转的算法完整源码(定义,实现,main函数测试) #include<iostream> void helper_transpose(int **matrix, ...
  • C语言矩阵M*N节省空间的算法C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) C语言矩阵M*N节省空间的算法完整源码(定义,实现,main函数测试) #include <iostream> void nullifyRow( int **...
  • C语言矩阵运算库大起底

    千次阅读 2016-11-30 17:11:04
    C语言矩阵运算库
  • C语言矩阵相乘(简单型 hhhhhhhhhhhhhhhh
  • 动态规划C语言矩阵连乘Acm acm 采用动态规划来解题
  • C语言 矩阵/数组 马鞍点查找

    千次阅读 2020-05-05 21:46:37
    C语言 矩阵/数组 马鞍点查找 题目: 在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。 编程思维 首先我们需要寻找行最大值,然后确定行最大值所在列。然后再所在列寻找最小值。根据判断两次...
  • 我的C语言矩阵库01

    千次阅读 2017-10-23 19:45:45
    由于要在stm32上实现矩阵运算,所以结合网上代码实现了一个C语言矩阵库,进行一些矩阵的基本运算,包括:转置,加减,乘法,求逆,拼接等,测试环境是MDK5。先给出下载地址:点击这里。 首先是头文件math_matrix.h...
  • C语言矩阵传递给函数的方法

    千次阅读 2018-07-02 13:37:40
    C语言矩阵传递给函数的方法 先看一道题: A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now given an M x N matrix, return True if and only if the matrix is...
  • C语言 矩阵转置

    万次阅读 2019-05-16 10:04:20
    将一个2行3列的矩阵(二维数组)行列互换,存储到另一个3行2列的矩阵中。 要求以整型数据为例来解答。 输入 输入2行数据,每行3个整数,以空格分隔。 输出 行列互换后的矩阵,3行,每行2个数据,以空格分隔。...
  • C语言矩阵操作.cpp

    2019-12-31 09:49:44
    求n阶矩阵的逆矩阵。要求: (1)输入是一个n(n)阶矩阵A,输出是它的逆矩阵; (2)将得到的逆矩阵与原来的矩阵相乘,验证其结果矩阵是单位矩阵; (3)求出这个矩阵的秩。
  • C语言矩阵相乘

    2019-03-22 11:25:55
    学过线代都知道,两矩阵可以相乘的条件为...假设现在有一个2*3的矩阵,还有一个3*4的矩阵,怎么用C语言求他们的乘积矩阵呢? #include<bits/stdc++.h> using namespace std; int main() { int a[100][100],...
  • C语言 矩阵乘法

    2021-05-06 23:53:15
    矩阵乘法 给定一个 mm 行、nn 列的矩阵 AA 和一个 nn 行、mm 列的矩阵 BB。你需要用矩阵 AA 与矩阵 BB 相乘,并且将 mm 行 mm 列的乘积结果输出。 输入格式 第一行输入 2 个整数,分别对应题目描述中的 m 和 n(1≤...
  • C语言矩阵操作

    2020-12-10 20:42:03
    编程存储一个3*3阶矩阵矩阵中的数值由用户动态输入 1)输出其转置矩阵 2)输出该矩阵与其转置矩阵之和 3)输出该矩阵中的最大值及其行列数 #include <stdio.h> #define H 3 #define L 3 int main(int argc, ...
  • 超好用的纯C语言矩阵运算库

    千次阅读 2019-06-16 18:57:51
    超好用的纯C语言矩阵运算库 最近开发基于异构传感器的异步定位数据的卡尔曼滤波,因为最终要用在一个老爷DSP上,已有代码都是C写的,不想研究这种老爷设备下的C++调用,Eigen这超好用的矩阵运算库算是没法用了。随便...
  • C语言矩阵乘法

    2021-01-05 16:25:57
    给定一个 m行、n 列的矩阵 A 和一个 n 行、m 列的矩阵 B。你需要用矩阵 A与矩阵 B 相乘,并且将 m行 m 列的乘积结果输出 #include <stdio.h> int main() { int matrix_a[10][10]; int matrix_b[10][10]; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,042
精华内容 2,416
关键字:

c语言矩阵

c语言 订阅