关于显示旋转矩阵的问题求解

NaiveVDisk 2011-10-17 10:01:31
输入3,在屏幕输出如下矩阵
1 2 3
8 9 4
7 6 5
输入4,在屏幕输出如下矩阵
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
编写程序输出按n时的矩阵

因为本人只学到了继承与多态,所以希望有人能用这之前的知识帮忙解答,如果实在不行,
用后面的知识也行,不过希望能有注释~
谢谢~!
...全文
239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用楼主 tmweipan 的回复:]
因为本人只学到了继承与多态,所以希望有人能用这之前的知识帮忙解答,如果实在不行,
用后面的知识也行,不过希望能有注释~[/Quote]

看不出什么继承和多态。

“后面的知识”是什么?这些知识只是在书本上没有前后,在道理上没有先后,反而是越是看似简单的东西越是需要反复抛析应用,越是花哨和繁复的东西可能其内涵越少。



单看你的这个问题,如果没有明确给出你的要求(比如说你所要求的什么“继承和多态”知识点到底是什么),很可能凑个关于行号和列号的数学公式出来。其实这就容易偏离原本要考察的知识点。
NaiveVDisk 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sp1234 的回复:]

引用楼主 tmweipan 的回复:
因为本人只学到了继承与多态,所以希望有人能用这之前的知识帮忙解答,如果实在不行,
用后面的知识也行,不过希望能有注释~

看不出什么继承和多态。

“后面的知识”是什么?这些知识只是在书本上没有前后,在道理上没有先后,反而是越是看似简单的东西越是需要反复抛析应用,越是花哨和繁复的东西可能其内涵越少。



单看你的这个问题,如果没有明确给……
[/Quote]

没办法,C#刚刚起步,C倒是学得差不多了额···
NaiveVDisk 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sp1234 的回复:]

其实面向对象的系统分析和设计,就算我们说它要复杂和重要得多,但是首先它在形式上脱离了低级的计算机领域概念,而是仅仅保留计算机软件行业设计所需要的逻辑思维习惯(例如一阶逻辑推理模式),但是完全是使用应用领域的术语。不论是静态地去做类型设计,还是动态地研究角色、活动、事件、状态、功能,全都是用应用领域的术语。

如果你学了一些设计方面的知识,急于用简单的算法计算小程序来验证,那么你就学不到真正的……
[/Quote]

呵呵,挺有道理的,你是个老师吗?说话的语气很像老师啊,嘿嘿········
  • 打赏
  • 举报
回复
把n改为19,直接运行,输出这个:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 20
71 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 90 21
70 135 192 193 194 195 196 197 198 199 200 201 202 203 204 205 152 91 22
69 134 191 240 241 242 243 244 245 246 247 248 249 250 251 206 153 92 23
68 133 190 239 280 281 282 283 284 285 286 287 288 289 252 207 154 93 24
67 132 189 238 279 312 313 314 315 316 317 318 319 290 253 208 155 94 25
66 131 188 237 278 311 336 337 338 339 340 341 320 291 254 209 156 95 26
65 130 187 236 277 310 335 352 353 354 355 342 321 292 255 210 157 96 27
64 129 186 235 276 309 334 351 360 361 356 343 322 293 256 211 158 97 28
63 128 185 234 275 308 333 350 359 358 357 344 323 294 257 212 159 98 29
62 127 184 233 274 307 332 349 348 347 346 345 324 295 258 213 160 99 30
61 126 183 232 273 306 331 330 329 328 327 326 325 296 259 214 161 100 31
60 125 182 231 272 305 304 303 302 301 300 299 298 297 260 215 162 101 32
59 124 181 230 271 270 269 268 267 266 265 264 263 262 261 216 163 102 33
58 123 180 229 228 227 226 225 224 223 222 221 220 219 218 217 164 103 34
57 122 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 104 35
56 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 36
55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37

  • 打赏
  • 举报
回复
其实面向对象的系统分析和设计,就算我们说它要复杂和重要得多,但是首先它在形式上脱离了低级的计算机领域概念,而是仅仅保留计算机软件行业设计所需要的逻辑思维习惯(例如一阶逻辑推理模式),但是完全是使用应用领域的术语。不论是静态地去做类型设计,还是动态地研究角色、活动、事件、状态、功能,全都是用应用领域的术语。

如果你学了一些设计方面的知识,急于用简单的算法计算小程序来验证,那么你就学不到真正的设计所需要的技术了,只能接触一些课堂上的计算题而已。
  • 打赏
  • 举报
回复
这里是一个demo,懒得去找公式,所以也就只好去实际去填数字。
using System;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var n = 10;
var m = new int[n, n];
填充一周(0, 1, m);
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
Console.Write("{0,4}", m[i, j]);
Console.WriteLine();
}
Console.ReadLine();
}

private static void 填充一周(int start, int num, int[,] m)
{
var len = m.GetLength(0);
var max = len - start - 1;
for (var j = start; j < len - start; j++)
m[start, j] = num++;
for (var i = start + 1; i < max; i++)
m[i, max] = num++;
for (var j = max; j > start; j--)
m[max, j] = num++;
for (var i = max; i > start; i--)
m[i, start] = num++;
start++;
if (start + start < len)
填充一周(start, num, m);
}
}
}
  • 打赏
  • 举报
回复
这里看不出能够考察什么“继承、多态”之类的玩意儿。

实际上,面向对象的软件分析和设计技术主要是面向软件工程,而不是什么数据结构、算法之类的低级的东西。如果你发现有些人整天在那里“研究”算法,至少是书本上的基础性算法,那么十有八九这些都跟面向对象系统分析和设计没有多大关系。所以你的问题,就有些貌似“不明就里”。想用一个初级的算法程序,来考察和示范面向对象设计问题,几乎是得不到什么好处的。
真相重于对错 2011-10-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20111007/10/b17f2e59-50d2-4997-9d63-4780ea94262a.html
NaiveVDisk 2011-10-17
  • 打赏
  • 举报
回复
自己顶起!
yalan 2011-10-17
  • 打赏
  • 举报
回复

private static int iRow = 4;//行数
private static int iCol = 5;//列数
private string[,] arrStr = new string[iRow, iCol];
public Form1()//构造函数
{
InitializeComponent();
for (int i = 0; i < iRow; i++)
{
for (int j = 0; j < iCol; j++)
{
arrStr[i, j] = i.ToString() + j.ToString();
richTextBox1.AppendText(arrStr[i, j] + " ");
}
richTextBox1.AppendText("\r\n");
}


}

private void button1_Click(object sender, EventArgs e)//旋转矩阵
{
for (int i = 0; i < iCol; i++)
{
for (int j = 0; j < iRow; j++)
{
richTextBox2.AppendText(arrStr[j, i] + " ");
}
richTextBox2.AppendText("\r\n");
}
}


111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧