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 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/07 15:42:48
![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 哪位大哥能帮我做下啊 等会就要教了 感激不尽哪](/uploads/image/z/14788874-2-4.jpg?t=pascal%E7%BC%96%E7%A8%8B%E9%A2%98+%E6%95%B0%E7%BB%84%E7%B1%BB%E5%9E%8B%E7%9F%A9%E5%BD%A2%E7%9A%84%E8%BD%AC%E5%88%B6%EF%BC%9AA%EF%BC%9A%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94%E2%80%94B%EF%BC%9A1+2+3+1+4+7+104+5+6+2+5+8+117+8+9+3+6+9+1210+11+12%E6%8A%8AA%E8%BD%AC%E5%88%B6%E4%B8%BAB+%E5%93%AA%E4%BD%8D%E5%A4%A7%E5%93%A5%E8%83%BD%E5%B8%AE%E6%88%91%E5%81%9A%E4%B8%8B%E5%95%8A+%E7%AD%89%E4%BC%9A%E5%B0%B1%E8%A6%81%E6%95%99%E4%BA%86+%E6%84%9F%E6%BF%80%E4%B8%8D%E5%B0%BD%E5%93%AA)
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.