首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从空函数获取和存储结构二维数组或矩阵

从空函数获取和存储结构二维数组或矩阵
EN

Stack Overflow用户
提问于 2021-03-16 16:23:06
回答 2查看 76关注 0票数 0

我从NxM矩阵中得到一个2x2矩阵。在此之后,我需要找到它的行列式和逆矩阵,然而,在for循环之外,2x2矩阵似乎全部被删除了,而不是作为变量保存在struct matrix中,我打算在其中存储它。我不知道自己做错了什么,因为我是个初学者。新的2x2矩阵m2似乎没有显示任何内容。请注意,矩阵元素是从文件中获得的。

代码语言:javascript
运行
AI代码解释
复制
void matrixDeterminant(struct Matrix mat, struct Matrix *m2)
{
  int mrow = 0;    
  int mcol = 0;    

  /********************************************************/
  // NEW EDIT

  (*m2).rows = 2;
  (*m2).cols = 2;


  printf("Finding determinant\n");

  printf("Enter row to start the 2x2 matrix:\n");
  scanf("%d", &mrow);

  printf("Enter column to start the 2x2 matrix:\n");
  scanf("%d", &mcol);

  //deducing a new matrix 
  
  for(int i = mrow; i <= mrow+1; i++)
  {
    printf("Row %d:  ", i-2);
    for(int j = mcol; j <= mcol+1; j++)
    { 
      // defining a new 2x2 matrix 
      (*m2).Matrix[i][j] = (mat).Matrix[i-1][j-1];
      printf("\t%.2f",(*m2).Matrix[i][j]);
    
    }
    printf("\n");
   }
   
}


the Output:
Enter one character name of the matrix, e.g, A, B etc:  
A
Enter # rows of matrix (<10):
5
Enter # columns of matrix (<10):
5
Matrix A: 
The matrix is: 
Row 1:      2.00    4.00    2.00    4.00    1.00
Row 2:      2.00    -5.00   1.00    10.00   10.00
Row 3:      -7.00   10.00   10.00   0.00    6.00
Row 4:      -8.00   -2.00   9.00    6.00    10.00
Row 5:      3.00    -10.00  7.00    9.00    4.00
Finding determinant now!
Enter a row where to start the 2x2 matrix:
3
Enter a column where to start the 2x2 matrix:
3
Row 1:      10.00   0.00
Row 2:      9.00    6.00
The matrix is: 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-16 18:28:08

你忘了为rows矩阵设置colsm2矩阵.所以它不会被展示。

只需将它们分配到matrixDeterminant函数中的某个地方:

代码语言:javascript
运行
AI代码解释
复制
/*...*/

(*m2).rows = n;
(*m2).cols = n;

/*...*/

更新

mat.函数中,您使用嵌套for 中的2个索引(值ij)从矩阵中读取2x2矩阵。问题是,您正在使用相同的索引将它们写入矩阵(这似乎不正确,因为可以使用相同的错误索引打印值),这会导致溢出,因为数据是写在矩阵边界之外的。

我强烈建议您重写for以使其更具可读性,但这并不是绝对必要的,因为您可以(即使不应该)通过添加两个整数并在for中使用/递增它们来解决这个问题:

代码语言:javascript
运行
AI代码解释
复制
int y = 0;
for(int i = row; i <= row+1; i++)
{
    int x = 0;
    printf("Row %d:  ", i-2);
    for(int j = col; j <= col+1; j++)
    { 
      // defining a new 2x2 matrix 
      (*m2).Matrix[y][x] = (mat).Matrix[i-1][j-1];
      printf("\t%.2f",(*m2).Matrix[y][x]);
      x++;
    }
    printf("\n");
    y++;
}

I更喜欢编写下面的修复程序:

代码语言:javascript
运行
AI代码解释
复制
/*2x2 sub-matrix*/
void matrixDeterminant(struct matrix mat, struct matrix *m2)
{
  int baseRow = 0;
  int baseCol = 0;
  printf("Finding determinant now!\n");
  printf("Enter a row where to start the 2x2 matrix:\n");
  scanf("%d", &baseRow);
  printf("Enter a column where to start the 2x2 matrix:\n");
  scanf("%d", &baseCol);
  
  /* 
  Since the input is expected to be given in a "human readable"  format,
  I decrease both 'baseRow' and 'baseCol' so they can be in "program natural" format.
  */
  baseRow--;
  baseCol--;

  (*m2).rows = 2;
  (*m2).cols = 2;
  for(int i = 0; i < 2; i++)
  {
    printf("Row %d:  ", i+1);
    for(int j = 0; j < 2; j++)
    { 
      (*m2).Matrix[i][j] = (mat).Matrix[baseRow+i][baseCol+j];
      printf("\t%.2f",(*m2).Matrix[i][j]);
    
    }
    printf("\n");
   }
}
票数 0
EN

Stack Overflow用户

发布于 2021-03-16 18:29:25

rowscols of m2没有在matrixDeterminant中设置,因此没有定义它们。然后,当DisplayMatrix试图显示矩阵时,不显示值(如果rowscols的值为0,但这不一定总是正确的)。

这可以通过在m2中指定matrixDeterminant中的正确尺寸来解决。

代码语言:javascript
运行
AI代码解释
复制
m2->rows = 2;
m2->cols = 2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66665363

复制
相关文章
无法加载 DLL xpstar.dll 或它引用的一个 DLL。原因: 126(找不到指定的模块。)。
需要复制数据库文件,把SQL服务停了,不使用脱机或者分离是觉得比较慢,结果就是再次重启服务后,SQL开始报错:
_一级菜鸟
2020/08/02
2.3K0
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
最近在师姐机器上跑实验的时候,想利用matplotlib包来绘制损失曲线图,安装过程中碰到了一些小麻烦,感觉之前好像也碰到过类似的问题,网上一搜什么numpy、matplotlib、pillow包版本冲突啊,然后就是各种尝试,直至重装Anaconda,当时特头疼,最后无意中解决了,今天又碰到了类似的问题,这次记录下来防止忘记
全栈程序员站长
2022/09/14
6.8K1
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
[754]ImportError: DLL load failed: 找不到指定的模块
在tensorflow的学习中,想使用tensorflow-gpu版的学习,充分利用计算机。但是跟网上很多博主的方法安装gpu,cuda是安装成功了,但是却一直报以下一个错误。
周小董
2020/02/14
14.8K0
[754]ImportError: DLL load failed: 找不到指定的模块
安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
解决方法:降低tensorflow版本,版本太高。在terminal复制粘贴以下命令:
川川菜鸟
2021/10/18
1.4K0
找不到mfc110.dll,无法执行代码
运行完直接即可进行下载,安装后解决对应的所有问题。 傻瓜式安装,自动安装到C:\Windows\System32下。 comct232.ocx 6.0.98.39 comct332.ocx 6.7
红目香薰
2022/11/30
8730
找不到mfc110.dll,无法执行代码
Pycharm中无法导入(import)自己写的模块或脚本
问题描述:我在code文件夹下编写了translate.py 和 test.py两个脚本文件。想在test.py中import translate.py的一个函数,发现却不行。 image.png 解
Aidol
2020/07/23
3.8K0
Pycharm中无法导入(import)自己写的模块或脚本
MICROSOFT REPORT VIEWER 2012之无法加载相关的dll
使用VS 2012开发报表, 如果是使用的微软的报表控件的话,默认是使用的MICROSOFT REPORT VIEWER 2012,本地开发基本上没问题,但是一发布服务器,就会发现坑了,微软挖坑从来就不打招呼,坑你没商量。
雪雁-心莱科技
2018/12/27
9160
pycharm中安装模块_pycharm怎么下载模块
4.接着搜索matplotlib它会自动搜索,然后点击左下角安装,然后退出就可以了
全栈程序员站长
2022/09/27
1.3K0
pycharm中安装模块_pycharm怎么下载模块
错误: 找不到或无法加载主类(java)
很多刚学java的同学基本上都遇到过这个问题,刚才我刚了一下idea中入口雷类的包的地址,就出现这个了。原因很简单,在此特做记录,希望能帮助到点开这个文章,遇到错误的你。
手撕代码八百里
2020/07/28
5.1K0
java提示找不到或无法加载主类
背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示 Files 找不到或无法加载主类;C:
千往
2018/01/24
1.9K0
java提示找不到或无法加载主类
SignalR 在IE中无法工作 - Internet Explorer
运行基于SignalR的超线程上载器的代码,发现SignalR 在IE 9上居然没法工作了,提示如下: 提示很明显,需要json2.js的支持。 使用Nuget 搜索json2.js 并安装: 在引用
张善友
2018/01/29
3.4K0
SignalR 在IE中无法工作 - Internet Explorer
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
声明一下,本帖子是记录本人解决问题得步骤,并不一定适合所有人,你们能找到这个博文,其他人得估计也试过了不行,没必要回帖喷我,另外360里面有dll修复,网上也大把得修复工具,这个只是手动修复了我自己遇到得问题。
全栈程序员站长
2022/09/14
4.3K0
模块***已加载但找不到入口点DllRegisterServer,请确保***为有效的DLL或OCX文件,然后重试[通俗易懂]
pycharm import cv2找不到指定模块_pycharm显示主菜单
首先,我们是要导入opencv(cv2)包,那么这个包是不是必须就在我们pycharm的这个文件夹下面才行?我认为必须是这样。
全栈程序员站长
2022/09/27
1.2K0
pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]
2.选择Project Interpreter,点击右边绿色的加号添加包
全栈程序员站长
2022/09/27
3.3K0
pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说模块已加载,但找不到入口点DLLRegisterServer[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/08/01
52.8K1
模块已加载,但找不到入口点DLLRegisterServer[通俗易懂]
Windows 下的 WPF 开发 调试应用程序在什么时机加载了 Dll 模块
在尝试优化性能的时候,如何可以了解到在应用程序启动的过程中,在什么步骤开始加载了某些 Dll 文件
林德熙
2021/04/13
6210
pycharm添加anaconda解释器_anaconda找不到指定模块
PyCharm使用anaconda新建环境是只包含一些基础包,后续如果想要如Scrapy.requests等库的话则需要自己在解释器页面添加了(ctrl+alt+s进入解释器设置页面)
全栈程序员站长
2022/09/27
2.2K0
pycharm添加anaconda解释器_anaconda找不到指定模块
[记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题
本文将通过一个经典的 “tensorflow找不到dll” 问题来入手,给大家一个如何找到缺失dll的办法,进而再分享一个windows上排查问题的好工具(因为大多开发者在windows上开发&在linux上部署,windows还是绕不过)。
罗西的思考
2020/09/21
2.1K0
IDEA 出现错误:找不到或无法加载主类
解决方法: idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 解决方法二: 在这里设置自己的java文件的目录位置
孙晨c
2019/09/10
6.7K1
IDEA 出现错误:找不到或无法加载主类
点击加载更多

相似问题

使用jquery按数据属性选择元素

53

使用jQuery按数据属性选择元素

110

更改后按数据属性选择元素

11

按属性选择元素

170

在CSS中按数据*属性选择元素

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文