对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
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” 文件中
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
第二个空位 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 列的变化来设置,您可以根据应用程序的要求构建请求对象并在任何事件上解决它。
【讨论】:
以上是关于对一个方阵转置,就是把原来的行号变列号,原来的列号变行号的主要内容,如果未能解决你的问题,请参考以下文章