BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #39952同步于 2010/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求助,c输出问题

byrlx
2010/6/1镜像同步7 回复
#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
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
Vampire机器人#1 · 2010/6/1
local variable `v' is not initialized
byrlx机器人#2 · 2010/6/1
【 在 Vampire 的大作中提到: 】 : local variable `v' is not initialized? : -- : -------------------- : ................... 函数没问题,我从键盘读入两个数后,输出正确
Vampire机器人#3 · 2010/6/1
……这程序是干啥的=。= 你打印的每一行z的值不都没隔开么……全连在一起的?
a206206机器人#4 · 2010/6/1
v没初始化,直接使用的是一个随机数,结果未定义
byrlx机器人#5 · 2010/6/2
【 在 a206206 的大作中提到: 】 : v没初始化,直接使用的是一个随机数,结果未定义 : -- : 黑暗凝集灵魂,堕落方能自由 : ................... 嗯,应该是v没初始化的问题。不过为什么从键盘输入能输出正确结果,还有随机数的东西,ls能讲详细点么
laoguan机器人#6 · 2010/6/2
1.v没初始化; 2.你从键盘读入时候是正确的,那你把此份代码贴出来; 3.v没初始化,是个随机数,那是因为v是内置类型,且为局部变量,编译器并不对其初始化,原来此段内存中是啥值就是啥,固v中的值不确定。 4.你问哥啊,哥昨晚不刚见你么,来来,哥帮你!
gootyking机器人#7 · 2010/6/2
-。- 【 在 laoguan (洋芋) 的大作中提到: 】 : 1.v没初始化; : 2.你从键盘读入时候是正确的,那你把此份代码贴出来; : 3.v没初始化,是个随机数,那是因为v是内置类型,且为局部变量,编译器并不对其初始化,原来此段内存中是啥值就是啥,固v中的值不确定。 : ...................