有趣的问题,答对给200分 :)

CForce 2002-09-12 06:46:58
//以下的输出结果是多少?

using System;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(Max(100,1000));
}

public static int Max(int i1, int i2)
{
if (i1 == i2)
return 0;
if (i1 > i2)
return 1;
if (i1 < i2)
return -1;
}
}
}

...全文
40 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
leus 2002-09-13
  • 打赏
  • 举报
回复
public static int Max(int i1, int i2)
{
if (i1 == i2)
return 0;
if (i1 > i2)
return 1;
return -1;

}

Email:leus@21cn.com

sdsxc 2002-09-13
  • 打赏
  • 举报
回复
同意六子
TheAres 2002-09-13
  • 打赏
  • 举报
回复
CForce () ,还真给分,你好雷锋啊.
--------------------------------
To teach a fish how to swim.
zag 2002-09-12
  • 打赏
  • 举报
回复
编译出错!"并非所有代码都有返回值",在函数末尾加上return 0;
结果为:-1
CForce 2002-09-12
  • 打赏
  • 举报
回复
TheAres(喜欢教鱼游泳) 说得对!
niwalker()也说得对!

下面是sscli类似的写法:
public int CompareTo(Object value)
{
if (value == null)
{
return 1;
}

if (value is Int32)
{
int i = (int)value;
if (m_value < i) return -1;
if (m_value > i) return 1;
return 0;
}
throw new ArgumentException (Environment.GetResourceString("Arg_MustBeInt32"));
}
niwalker 2002-09-12
  • 打赏
  • 举报
回复
CForce:你不来? :)

Max正确的写法是:

public static int Max(int i1, int i2)
{
if(i1>i2)
return 1;
if(i1<i2)
return -1;
return 0;
}
晓梦周生 2002-09-12
  • 打赏
  • 举报
回复
同意楼上的观点
yarshray 2002-09-12
  • 打赏
  • 举报
回复
Console.WriteLine()//重载了几乎所有的源数据!
acsharplover 2002-09-12
  • 打赏
  • 举报
回复
Console.WriteLine()不能显示整数吧。是否应该是
Console.WriteLine(Max(100,1000).ToString());

晓梦周生 2002-09-12
  • 打赏
  • 举报
回复
编译出错,应改为:
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(Max(100,1000));
}

public static int Max(int i1, int i2)
{
if (i1 == i2)
return 0;
if (i1 > i2)
return 1;
if (i1 < i2)
return -1;
else
return 10;
}
}
}

返回-1.
bigrongshu 2002-09-12
  • 打赏
  • 举报
回复
public static int Max(int i1, int i2)
{
if (i1 == i2)
return 0;
if (i1 > i2)
return 1;
if (i1 < i2)
return -1;
else
return -2;
}
yarshray 2002-09-12
  • 打赏
  • 举报
回复
我想没那么简单吧!
TheAres 2002-09-12
  • 打赏
  • 举报
回复
敲错了一个字符
当“i1 .= i2”,
应为:当“i1 >= i2”
----------------------------------
I like to teach a fish how to swim.
TheAres 2002-09-12
  • 打赏
  • 举报
回复
你的语句里面有错误。

在函数的最后一句if (i1 < i2) return -1;
我们的编译器并没有聪明到理解上下文,所以对最后一句,当“i1 .= i2”,函数就没有返回值了。他编译第三句的时候并不考虑1,2句。
可以这样
{
return (i1 > i2)?1:((i1 == i2)?0:-1);
}
DragonFly-9 2002-09-12
  • 打赏
  • 举报
回复
应该是-1,我再试试吧

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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