进来看看这个有意思的题目,欢迎解答

it老猫 2008-06-18 06:52:51
用任何一门编程语言实现:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
答对有奖哦!
...全文
107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vansoft 2008-06-27
  • 打赏
  • 举报
回复
首先确定有多少个数输出几行几列.

完了重新定义N(x,y)

接着就是把数排进去,

最后输出N这个数组.
it老猫 2008-06-27
  • 打赏
  • 举报
回复
不会谦虚点,来看看这个答案吧。整个简单的PRINTF有什么意思。
#include <stdio.h>

static int data[20][20];
void getArray(int n,int offset){
if(n==1)
data[0][0] = offset+1;
else{
for(int i=0; i<(n+2*(n-1)+(n-2)); i++){
int d = i+1;
d = d + offset;
if(i<n) data[0][i] = d; //top
else if(i<n+n-1) data[(i-n)%n+1][n-1] = d; //right
else if(i<n+n-1+n-1) data[n-1][(n-1)-(i-n-(n-1))%n - 1] = d; //bottom
else data[(n-1)-(i-n-2*(n-1))%n - 1][0]=d; //left
}
}
}

main(){
int out[20][20];
printf("Please input n(1~20):\n");
int n;
scanf("%d",&n);
if(n<1 || n>20) {
printf("n must between 1 to 10.\n");
return 0;
}
getArray(n,0);
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
out[i][j]=data[i][j];
}
}
int tmpN = n;
tmpN = tmpN-2;
int count = 1;
while(tmpN>0){
getArray(tmpN,out[count][count-1]);
for(int i=count;i<count+tmpN; i++)
for(int j=count; j<count+tmpN; j++)
out[i][j]=data[i-count][j-count];
count++;
tmpN= tmpN-2;
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
printf("%5d,",out[j][i]); //转置输出
}
printf("\n");
}
return 0;
}
it老猫 2008-06-27
  • 打赏
  • 举报
回复
我给你一百给数字,蛇形排列,你给我有printf,给我打印。呵呵,不累死你。
舉杯邀明月 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Sandrer 的回复:]
VB版的被人抢答了,我来补充C++版:

#include "iostream"
using namespace std

int main()
{
cout < <TEXT("1 2 3 4\n")
cout < <TEXT("12 13 14 5\n")
cout < <TEXT("11 16 15 6\n")
cout < <TEXT("10 9 8 7\n") < <endl
}
[/Quote]
哈哈,你的编译会无法通过滴~~~
这样就行了:
#include "iostream" 
using namespace std;
int main()
{
cout << "1 2 3 4\n" << "12 13 14 5\n" << "11 16 15 6\n" << "10 9 8 7\n";
}

Sandrer 2008-06-20
  • 打赏
  • 举报
回复
VB版的被人抢答了,我来补充C++版:

#include "iostream"
using namespace std

int main()
{
cout<<TEXT("1 2 3 4\n")
cout<<TEXT("12 13 14 5\n")
cout<<TEXT("11 16 15 6\n")
cout<<TEXT("10 9 8 7\n")<<endl
}
舉杯邀明月 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 WallesCai 的回复:]
debug.print "1 2 3 4 " & chr(13) & "12 13 14 5 " & CHR(13) & "11 16 15 6 " & CHR(13) & "10 9 8 7"
就可以了,真简单
[/Quote]

^_^
callcenter油条 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jennyvenus 的回复:]
蛇形矩阵,程序由于网上都有,不贴了,有兴趣的人写写看,递归版的挺好玩啊。
[/Quote]
这是蛇形矩阵吗?
三楼の郎 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 WallesCai 的回复:]
debug.print "1 2 3 4 " & chr(13) & "12 13 14 5 " & CHR(13) & "11 16 15 6 " & CHR(13) & "10 9 8 7"
就可以了,真简单
[/Quote]

  • 打赏
  • 举报
回复
不用递归的 1个循环搞定~
用户 昵称 2008-06-18
  • 打赏
  • 举报
回复
蛇形矩阵,程序由于网上都有,不贴了,有兴趣的人写写看,递归版的挺好玩啊。
熊孩子开学喽 2008-06-18
  • 打赏
  • 举报
回复
debug.print "1 2 3 4 " & chr(13) & "12 13 14 5 " & CHR(13) & "11 16 15 6 " & CHR(13) & "10 9 8 7"
就可以了,真简单

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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