返回信息流#include<stdio.h>
#define max(a,b)((a)<(b)?(b):(a))
#define abs(a)((a)>0?(a):-(a))
int foo(int x,int y)
{int t=max(abs(x),abs(y));
int u=t+t;
int v=u-1;
v=v*v+u;
if(x==-t)
v+=u+t-y;
else if(y==-t)
v+=3*u+x-t;
else if(y==t)
v+=t-x;
else
v+=y-t;
return v;
}
int main()
{ int x,y;
for(y=-4;y<=4;y++)
{
for(x=-4;x<=4;x++)
printf("%5d",foo(x,y));
printf("\n");
}
while(scanf("%d%d",&x,&y)==2)
printf("%d\n",foo(x,y));
return 0;
}实现输入一个坐标,得到该坐标对应的值...
这是一条镜像帖。来源:北邮人论坛 / cpp / #41138同步于 2010/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]求讲解
jingmin
2010/7/9镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
你是想知道这程序具体每一步是什么意思呢?还是想知道这函数大概做了一件什么事情。
具体每一步,马上能跟你讲。
大概做了什么事情,同求注释。
唉,写个代码都不写注释……
解释下你的程序或者直接说你想干啥...
【 在 jingmin 的大作中提到: 】
: #include<stdio.h>
: #define max(a,b)((a)<(b)?(b):(a))
: #define abs(a)((a)>0?(a):-(a))
: ...................
螺旋队列的输出..
【 在 babylike 的大作中提到: 】
: 好像是螺旋矩阵
: 类似
: 7 8 9
: ...................
7 8 9
6 1 2
5 4 3
看清以上数字排列的规律,设1点的坐标是(0,0),x方向向右为正,y方向向下为正,例如7的坐标是(1,1),2的坐标为(0,1),实现输入任意一点坐标(x,y)输出对应的数字。。。这个规律是怎么找的阿??
先判断点在哪条线上,然后找到下一个数字...
【 在 jingmin (*棉花糖*) 的大作中提到: 】
: 7 8 9
: 6 1 2
: 5 4 3
: ...................