对一个方阵转置,就是把原来的行号变列号,原来的列号变行号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对一个方阵转置,就是把原来的行号变列号,原来的列号变行号相关的知识,希望对你有一定的参考价值。

例如,如下的方阵:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

转置后变为:

1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:

13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4

下面的代码实现的功能就是要把一个方阵顺时针旋转。

void rotate(int* x, int rank)

int* y = (int*)malloc(___________________); // 填空

for(int i=0; i<rank * rank; i++)

y[_________________________] = x[i]; // 填空


for(i=0; i<rank*rank; i++)

x[i] = y[i];


free(y);


int main(int argc, char* argv[])

int x[4][4] = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;
int rank = 4;

rotate(&x[0][0], rank);

for(int i=0; i<rank; i++)

for(int j=0; j<rank; j++)

printf("%4d", x[i][j]);

printf("\n");


return 0;


请分析代码逻辑,并推测划线处的代码。

答案写在 “解答.txt” 文件中

注意:只写划线处应该填的内容,划线前后的内容不要抄写。

参考技术A 第一个空位 sizeof(int)*rank*rank
第二个空位 rank*(rank-i%rank-1)+i/rank

你可以编写程序测试,或者带入数字验算,这个完全符合需求。追问

C:\Users\Administrator\Desktop\Cpp1.cpp(6) : error C2065: 'malloc' : undeclared identifier
C:\Users\Administrator\Desktop\Cpp1.cpp(18) : error C2065: 'free' : undeclared identifier

追答

好吧。你这个需要加头文件 malloc.h

追问

追答

你不要在头文件前面加 空格啊。

从 Handsontable 上更改的行中获取数据(数据,列号,行号)

【中文标题】从 Handsontable 上更改的行中获取数据(数据,列号,行号)【英文标题】:Get Data(data,columns number,row number) from a changed row on Handsontable 【发布时间】:2020-03-01 09:07:45 【问题描述】:

我在 Angular 应用程序中有一个动手练习,我有多个列,但在 3 个列中我需要执行特定操作。

A 列 - 有一个包含一些值的下拉列表

B 列 - 有一个包含一些值的下拉列表

C 列 - 如果 A 或 B 从下拉列表中选择一个值,则将发生变化。

表是动态的,列也是动态的,所以有时列 A、B 和 C 不存在。

我的问题是:

handsontable 有任何选项可以从更改的单元格中获取行、列和数据?

我需要为 http 请求传递数据并为 C 列设置新数据。

【问题讨论】:

【参考方案1】:

有诸如 beforeChange 和 afterChange 之类的钩子可用于捕获单元格中的任何更改,请参阅 https://handsontable.com/docs/7.2.2/Hooks.html。 C 列的值可以在上述帮助下根据 A 或 B 列的变化来设置,您可以根据应用程序的要求构建请求对象并在任何事件上解决它。

【讨论】:

以上是关于对一个方阵转置,就是把原来的行号变列号,原来的列号变行号的主要内容,如果未能解决你的问题,请参考以下文章

Java:光标当前位置的列号和行号

矩阵倒置

查找数组中存储的范围值的列号

VBA如何得到选中的多行 的行号和列号

Excel 列号怎么变成列名

excle vba,如何查找一个已知值的行号和列号?