黑马程序员技术交流社区
标题:
关于入学考试题。求解
[打印本页]
作者:
zuopiezi
时间:
2015-6-14 13:00
提示:
该帖被管理员或版主屏蔽
作者:
mishisanyi
时间:
2015-6-14 15:22
做出来了,也可以得出答案,可是也许不是你想要的,我写的太复杂了
作者:
mishisanyi
时间:
2015-6-14 15:27
int arr[6][5]=
{{1, 16, 3, 2, 17},
{8, 6, 4, 3, 23},
{2, 5, 7, 8, 12},
{21, 2, 4, 6, 13},
{11, 111, 111, 132, 12},
{31, 311, 4111, 332, 32}
};
void main()
{
// 初始的区间坐标
int startX = 0, endX = 4;
int startY = 0, endY = 5;
while(startX<=endX && startY<=endY) // 循环条件
{
int i;
for(i=startX; i<=endX; i++) // 输出上边的行
cout << arr[startY][i] << " ";
startY ++; // 行的开始坐标增加
for(i=startY; i<=endY; i++) // 输出右边的列
cout << arr[i][endX] << " ";
endX --; // 列的结束坐标减小
for(i=endX; i>=startX; i--) // 输出下边边的行
cout << arr[endY][i] << " ";
endY --; // 行的结束坐标减小
for(i=endY; i>=startY; i--) // 输出左边的列
cout << arr[i][startX] << " ";
startX ++; // 列的开始坐标增加
}
}
复制代码
你可以参考这个,我写的那个太复杂了
作者:
路途遥远
时间:
2015-6-14 16:07
package wk.test;
public class JustTest {
// just used to test
public static void main(String[] args) {
// 2015-06-14
int[][] iArr = {{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}};;
for(int i=0; i<iArr.length; i++) {
for(int j=0; j<iArr[i].length; j++) {
if(iArr[i][j]<10) {
System.out.print(iArr[i][j] + " ");
} else {
System.out.print(iArr[i][j] + " ");
}
}
System.out.println();
}
}
}
复制代码
作者:
半月
时间:
2015-6-14 17:02
public static void spiralMatrix(int n){
int[][] matrix = new int[n][n];
//自然数 1~n*n
int num = 1;
//位置
int point=-1;
// x每个方向对应位置的递增值
int x=1;
for(int i = n;i>0;){
for(int j=0;j<i;j++){
point+=x;
matrix[point/n][point%n] = num++;
}
//设置位置的递增值,及循环递减
if(Math.abs(x)==1){
i--;
x*=n;
}
else{
x/=-n;
}
}
//打印
for(int i=0;i<matrix.length;i++){
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j]+"\t");
}
System.out.println();
}
}
复制代码
作者:
老徐
时间:
2015-6-14 21:40
好6啊,学习了
作者:
杜黎明
时间:
2015-6-14 21:46
回复查看
作者:
q19871127
时间:
2015-6-14 21:56
学习下..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2