回 帖 发 新 帖 刷新版面

主题:[讨论]新手请教问题:比较两个数大小!

问题:
1、此两程序运行结果一样,但能否按代码二的样式写?
2、如果输入的数是五位数,两个程序都运行不正确,求原因!
望各位高手指点!谢谢
[b]代码一:[/b]
max(int x,int y)
{
  int z;
  z = (x>y)?x:y;
  return z;
}

main()
{
  int a,b,s;
  scanf("%d%d",&a,&b);
  s=max(a,b);
  printf("%d",s);
  getch();
}
[b]代码二:[/b]
max(int x,int y)
{
  int z;
  z = (x>y)?x:y;
  printf("%d",z);/*用printf函数代替return*/
}

main()
{
  int a,b;
  scanf("%d%d",&a,&b);
  max(a,b);
  getch();
}

[em2][em18][em18][em18][em18][em18][em18][em18][em18]

回复列表 (共1个回复)

沙发

从代码的可移植性来讲,风格二是个不良风格样例。风格一的max函数无疑可以用于更多的地方,也可以嵌套在更深层次的处理中。至于你说五位数就不对了,是因为你输入的数里有超过32767的数而且用了tc编译器吧。tc的int型范围是-32768~32767,超过就错了。处理更长的整数可以把int换成long,精度放大一倍

我来回复

您尚未登录,请登录后再回复。点此登录或注册