| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
学习型 ASP/PHP/ASP.NET 主机 35元/年全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
赛孚耐:软件保护加密专家身份认证令牌USB KEY  
共有 908 人关注过本帖
标题:求N个数最大值,老出错 SOS
收藏  订阅  推荐  打印 
tianhe
Rank: 2
等级:注册会员
帖子:86
积分:960
注册:2005-3-17
求N个数最大值,老出错 SOS

求任意个数字的最大值,可是从循环第二次之后每次要执行两次。why? 代码如下:
using System;
class compare
{
static private int bigger=0;
static void Main()
{
  Console.WriteLine("你想求几个数中的最大数?");
  int iRead1=int.Parse(Console.ReadLine());
  for(int i=1;i<=iRead1;i++)//循环输入n个数, 第一次把值赋给numbx1,第二次之后的数赋给numbx2.
  {
   int numbx1=0;
   int numbx2=0;
   Console.WriteLine("请闭上眼睛输入第"+i+"个数");
   numbx1=int.Parse(Console.ReadLine());
if(i>1)
   {
   
    numbx2=int.Parse(Console.ReadLine());
    }
       if(numbx1>=numbx2)
    {
     bigger=numbx1;
    }
    else
    {
     bigger=numbx2;
    }
}
  Console.WriteLine("The biggest is\0 "+bigger);
   
}
}
搜索更多相关主题的帖子: SOS  最大值  
2005-3-28 18:01
live41
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:67
帖子:12422
积分:126000
注册:2004-7-22

你的程序每次循环都输入两个数,然后判断两个数中的哪个大。

你到底本来是想怎样?
2005-3-29 21:46
幻风幻云
Rank: 4
等级:高级会员
帖子:762
积分:7770
注册:2005-1-14

using System;
class compare
{
static private int bigger=0;
static void Main()
{
  Console.WriteLine("你想求几个数中的最大数?");
  int iRead1=int.Parse(Console.ReadLine());
  if (iRead1<=0)
  throw new ArgumentException("error");
  Console.WriteLine("请闭上眼睛输入第"+i+"个数");
  int[] iRead2=int.Parse(Console.ReadLine());   
    for(int i=1;i<=iRead1;i++)
  //循环输入n个数, 第一次把值赋给numbx1,第二次之后的数赋给numbx2.
    {
   int numbx1=iRead2[1];
   int numbx2=iRead2[i];
   if(numbx1<=numbx2)
     {
     numbx1=numbx2;
      }
     }
   Console.WriteLine("The biggest is\0 "+numbx1);
   
}
}

是不是想要这个啊
在单位记事本上修改的,没有调试,有错误请及时指出

2005-3-30 13:39
幻风幻云
Rank: 4
等级:高级会员
帖子:762
积分:7770
注册:2005-1-14

好像误解楼主的程序目的了

2005-3-30 16:30
幻风幻云
Rank: 4
等级:高级会员
帖子:762
积分:7770
注册:2005-1-14

以下是引用tianhe在2005-3-28 18:01:31的发言: 求任意个数字的最大值,可是从循环第二次之后每次要执行两次。why? 代码如下: using System; class compare { static private int bigger=0; static void Main() { Console.WriteLine("你想求几个数中的最大数?"); int iRead1=int.Parse(Console.ReadLine()); for(int i=1;i<=iRead1;i++)//循环输入n个数, 第一次把值赋给numbx1,第二次之后的数赋给numbx2. { int numbx1=0; int numbx2=0; Console.WriteLine("请闭上眼睛输入第"+i+"个数"); numbx1=int.Parse(Console.ReadLine()); //因为你的赋值语句在for语句之内,所以每次循环会先赋给numbx1。 if(i>1) { numbx2=int.Parse(Console.ReadLine()); //第二次循环后又赋给numbx2一个值,结果是要输入2个数, //你的目的是,每次输入一个数,都出来一个结果吧,那么就把numbx1的赋值放到for //外面。 } if(numbx1>=numbx2) { bigger=numbx1; } else { bigger=numbx2; } //这里写的太罗嗦了,bigger是多余的,可以参照我上面写的 //bigger不是多余的,上面的我写的那个是错的,numbx1是局部变量,不能放在下面的句子中 } Console.WriteLine("The biggest is\0 "+bigger); } }
这下没问题了吧

[此贴子已经被作者于2005-4-3 23:57:14编辑过]


2005-3-30 16:43
tianhe
Rank: 2
等级:注册会员
帖子:86
积分:960
注册:2005-3-17

各位兄台,抱拳了。

-------------------------------------------- 朴素,清醒
2005-3-31 07:58
fokin
Rank: 2
等级:注册会员
帖子:49
积分:590
注册:2005-3-25

[QUOTE]哎~~~[/QUOTE]

我不是高手,我只是新手~!!
2005-4-1 16:19
live41
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:67
帖子:12422
积分:126000
注册:2004-7-22

幻风幻云朋友,我恳请你申请做版主,呵呵。。。
2005-4-1 22:59
leeteng
Rank: 2
等级:注册会员
帖子:44
积分:540
注册:2005-1-7

class Max{
public static void Main(){
int[] num ;
Console.Writeline("你想求几个数中的最大数?");
int  len = int.Parse(console.readline());
num = new int[len];
for(int i = o ; i &lt;len; i++) {
Console.WriteLine("请闭上眼睛输入第"+i+"个数");
num[i] = int.parse(console,readline);
}
FindMax(num ,0 ,len-1);
}
public int FindMax(int[] num ,int low,int upper){
if(low=upper) return num[low];
else{
max = Findmax(num,low+1,upper);
if(max&gt;=num[low])
return max;
else return num[low];
}
}
} 好象使得问题复杂了
2005-4-2 16:22
leeteng
Rank: 2
等级:注册会员
帖子:44
积分:540
注册:2005-1-7

键盘很难用 将就着看吧
   int[] iRead2=int.Parse(Console.ReadLine());
幻风幻云兄:这个句子是什么意思?
2005-4-2 16:26
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.064212 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved