题目要求如下:找出输入的一连串整数中的最大和最小值。程序首先应提醒用户指定要输入多少个值,并要求用户确认。如果没有确认需要重新输入一次。
我可以写出确认的代码:
using System;
class Program
{
static void Main(string[] args)
{
int i;
char a; do
{
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("你想输入{0}个数字来比较大小。\n确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
}
while (a == 'N');
}
}接下来要做的事情就是比较输入的数字的大小。
int data, max = -2147483648, min = 2147483647;
for (int j = 0; j <= i; ++j)
{
data=int.Parse(Console.ReadLine());
max=(data>=max)?data:max;
min=(data<=min)?data:min;
}
Console.WriteLine("最大的数是{0},最小的数是{1}。", max, min);
Console.ReadLine();
可是我的头现在已经有两个大了!这个程序没有调试成功,因为执行完do以后程序就中断了。所以我也不知道我下面的for语句写的对不对。请大家帮我一下,这个程序该如何完善?
我可以写出确认的代码:
using System;
class Program
{
static void Main(string[] args)
{
int i;
char a; do
{
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("你想输入{0}个数字来比较大小。\n确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
}
while (a == 'N');
}
}接下来要做的事情就是比较输入的数字的大小。
int data, max = -2147483648, min = 2147483647;
for (int j = 0; j <= i; ++j)
{
data=int.Parse(Console.ReadLine());
max=(data>=max)?data:max;
min=(data<=min)?data:min;
}
Console.WriteLine("最大的数是{0},最小的数是{1}。", max, min);
Console.ReadLine();
可是我的头现在已经有两个大了!这个程序没有调试成功,因为执行完do以后程序就中断了。所以我也不知道我下面的for语句写的对不对。请大家帮我一下,这个程序该如何完善?
解决方案 »
- |zyciis| 如何将一个ICON对像转为ToolStripItem.Image对像,谢谢
- 30分求SQL语句~~
- 为何不能访问项目中的Properties命名空间??
- C++中的int *p 类型在C#中用什么类型转换啊?
- 嵌入的语句不能是声明或标记语句?
- Exception 类可以设置一个它的异常ID号吗?我想给Exception设一个异常ID号,什么办法可以解决?
- 紧急求助关于c# update access数据库的问题
- datagrid问题 或者说是DATAVIEW的问题 请教
- 如何在程序中得到datagrid某个位置cell对应的textbox?
- 请问大家关于WPF控件保存的问题
- c# 多线程问题 高手进
- 使用DbHelperSQL帮助类,怎么实现数据库事务
添加Microsoft.JScript引用,然后
Console.WriteLine(Microsoft.JScript.MathObject.max(123, 1232, 345456, 456456, 56768, 9));//里面的数你可以随便添加
class Program
{
static void Main(string[] args)
{
int i;
char a;
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
int[] number=new number[i];
for(int j=0;j<i;j++)
{
Console.WriteLine("确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
if(a=='N'||a=='n')
break;
else
number[j]=Convert.ToInt32(a);//
这里要注意几点。一个是输入的不是数字的判断,一个是number[]的下标问题
} } 你逻辑有问题
给你个大概意思
自己修改吧。
}
测试过没有问题.
你试试吧!
static void Main(string[] args)
{
int i;
char a;
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("你想输入{0}个数字来比较大小。\n确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
if (a == 'N')
{
return;
}
int data,max = -2147483648,min = 2147483647;
for (int j = 0; j <i; j++)
{
data = int.Parse(Console.ReadLine());
max = (data >= max) ? data : max;
min = (data <= min) ? data : min;
}
Console.WriteLine("最大的数是{0},最小的数是{1}。", max, min);
Console.ReadLine();
}
class Program
{
static void Main(string[] args)
{
int i;
char a;
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
int[] number=new number[i];
for(int j=0;j <i;j++)
{
Console.WriteLine("确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
if(a=='N'||a=='n')
break;
else
number[j]=Convert.ToInt32(a);//
这里要注意几点。一个是输入的不是数字的判断,一个是number[]的下标问题
} } 你逻辑有问题
给你个大概意思
自己修改吧。
}
其它的逻辑自己整理吧static void Main(string[] args)
{
int[] ary = new int[] { 1, 2, 0, 4,3 };
ArrayList al = new ArrayList();
al.AddRange(ary);
al.Sort();
int min = Convert.ToInt32(al[0]);
int max = Convert.ToInt32(al[al.Count - 1]); Console.WriteLine(min);
Console.WriteLine(max);
Console.ReadKey();
}
第一个bug,对于多少个数字的确认,只判断了a == 'N',只要不是N,输入其他什么字符都可以的,不一定是Y都可以确认。第二个bug,在for循环中,应该是j<i,而不是j<=i,否则的话会多循环一次。比如i=5,实际上会输入6个数字才开始判断。
目前不知道如何去除第一个bug,但是第二个bug bao_yan帮我指出来了,所以给了他15分,其他我觉得有帮助的我都意识了一下。其实我是新手,你们的回答太高深了,我看不懂,所以……我更改了部分代码,如下:
using System;
class Program
{
static void Main(string[] args)
{
int i;
char a; do
{
Console.WriteLine("你想比较几个数字?请输入:");
i = int.Parse(Console.ReadLine());
Console.WriteLine("你想输入{0}个数字来比较大小。\n确认请输入“Y”,取消请输入“N”。", i);
a = char.Parse(Console.ReadLine());
}
while (a == 'N');
Console.WriteLine("请输入{0}个你想比较大小的数字。", i); int data, max = -2147483648, min = 2147483647;
for (int j = 0; j < i; ++j)
{
data = int.Parse(Console.ReadLine());
max = (data >= max) ? data : max;
min = (data <= min) ? data : min; }
Console.WriteLine("最大的数是{0},最小的数是{1}。", max, min);
Console.ReadLine(); }
}