pascal编程题 数组类型矩形的转制:A:——————————————B:1 2 3 1 4 7 104 5 6 2 5 8 117 8 9 3 6 9 1210 11 12把A转制为B 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/11 17:34:02
pascal编程题 数组类型矩形的转制:A:——————————————B:1 2 3 1 4 7 104 5 6 2 5 8 117 8 9 3 6 9 1210 11 12把A转制为B 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪
pascal编程题 数组类型
矩形的转制:
A:——————————————B:
1 2 3 1 4 7 10
4 5 6 2 5 8 11
7 8 9 3 6 9 12
10 11 12
把A转制为B 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪
pascal编程题 数组类型矩形的转制:A:——————————————B:1 2 3 1 4 7 104 5 6 2 5 8 117 8 9 3 6 9 1210 11 12把A转制为B 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪
算法分析:
主要分两步骤:一,按行优先存储数组A中的元素;二,按列优先给数组B赋值.
参考代码:
Program BaiduZhidao;
Var n, m, i, j, t: Longint;
A: Array[1.. 100, 1.. 100] Of Longint;
B: Array[1.. 100, 1.. 100] Of Longint;
Temp: Array[1.. 10000] Of Longint;//定义一个临时数组temp,保存二维数组A按行优先存放的一维序列
Begin
Readln(n, m);//读入行和列
For i:= 1 To n Do
For j:= 1 To m Do
Read(A[i, j]);//读入二维数组A中的元素
t:= 0;//t为二维数组A中元素总数
For i:= 1 To n Do
For j:= 1 To m Do
Begin
Inc(t, 1);
Temp[t]:= A[i, j];
End;//将二维数组A中的所有元素按行优先保存到一维临时数组Temp中
For i:= 1 To t Do
If i Mod m = 0//按列优先存放,注意当存放在B数组最后一行时,i MOD m是为0的,要单独处理一下,即then后面的赋值,一般情况为else后面的赋值
Then B[m, i Div m]:= Temp[i]
Else B[i Mod m, i Div m + 1]:= Temp[i];
For i:= 1 To m Do
Begin
For j:= 1 To n - 1 Do
Write(B[i, j], ' ');
Writeln(B[i, n]);//防止行末多输出一个空格.在机器测评时,行末不能有空格,否则算错
End;//输出二维数组B中的元素
End.