返回信息流#include "stdio.h"
#include "math.h"
int max(int a, int b);
int abs(int);
int foo(int,int);
int main()
{
int x,y,z;
for(y=-4;y<=4;y++)
{
for(x=-4;x<=4;x++)
{
z = foo(x,y);
printf("%d",z);
}
printf("\n");
}
return 0;
}
int max(int a, int b)
{
return (a<b) ? b : a;
}
int abs(int a)
{
return a>0 ? a : -a;
}
int foo(int x,int y)
{
int v;
int level = max(abs(x),abs(y)); // (level+1) is the level where the number is in.......
int totalNum = (2*level-1)*(2*level-1); //how many number are there
if(x == level)
v += totalNum+level+y;
else if(y == level)
v += totalNum+3*level-x;
else if(x == -level)
v += totalNum+5*level-y;
else
v += totalNum+7*level+x;
return v;
}
编译后运行输出:
134513577-1074346114-1074346113-1074346112-1074346111-1074346110-1074346109-1074346108-1074346139
12226620-1074346145-1074346144-1074346143-1074346142-1074346141-1074346140-1074346163-1074346138
12226619-1074346146-1074346167-1074346166-1074346165-1074346164-1074346179-1074346162-1074346137
12226618-1074346147-1074346168-1074346181-1074346180-1074346187-1074346178-1074346161-1074346136
12226617-1074346148-1074346169-1074346182-1074346187-1074346186-1074346177-1074346160-1074346135
12226616-1074346149-1074346170-1074346183-1074346184-1074346185-1074346176-1074346159-1074346134
12226615-1074346150-1074346171-1074346172-1074346173-1074346174-1074346175-1074346158-1074346133
12226614-1074346151-1074346152-1074346153-1074346154-1074346155-1074346156-1074346157-1074346132
12226613-1074346124-1074346125-1074346126-1074346127-1074346128-1074346129-1074346130-1074346131
期待输出:
21 22 23 24 ...
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
编译环境,RHEL5.0
这是一条镜像帖。来源:北邮人论坛 / cpp / #39952同步于 2010/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
求助,c输出问题
byrlx
2010/6/1镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 Vampire 的大作中提到: 】
: local variable `v' is not initialized?
: --
: --------------------
: ...................
函数没问题,我从键盘读入两个数后,输出正确
【 在 a206206 的大作中提到: 】
: v没初始化,直接使用的是一个随机数,结果未定义
: --
: 黑暗凝集灵魂,堕落方能自由
: ...................
嗯,应该是v没初始化的问题。不过为什么从键盘输入能输出正确结果,还有随机数的东西,ls能讲详细点么
1.v没初始化;
2.你从键盘读入时候是正确的,那你把此份代码贴出来;
3.v没初始化,是个随机数,那是因为v是内置类型,且为局部变量,编译器并不对其初始化,原来此段内存中是啥值就是啥,固v中的值不确定。
4.你问哥啊,哥昨晚不刚见你么,来来,哥帮你!
-。-
【 在 laoguan (洋芋) 的大作中提到: 】
: 1.v没初始化;
: 2.你从键盘读入时候是正确的,那你把此份代码贴出来;
: 3.v没初始化,是个随机数,那是因为v是内置类型,且为局部变量,编译器并不对其初始化,原来此段内存中是啥值就是啥,固v中的值不确定。
: ...................