主题:求助。。。。比较数组的大小的问题!!!
lh104
[专家分:0] 发布于 2010-04-17 20:25:00
声明一个数组,元素是 2,4,1,6,7,8,10
第一个元素是2
用第一个元素和后面的元素相比较,一直比到最后一个元素,
如果第一个元素是最大的,那么就输出“第一个元素是最大的”
如果有和第一个元素一样的元存在,那么久输出“第一个元素不是唯一的”
如果第一个元素不是最大的,那么久输出“第一个元素不是最大的”
我现在比较卡壳的地方就是“第一个元素是最大的”,不知道该怎么把它一直比较到最后一个,
我只能写成这样: 比如2比1大了,然后就停了,就说2是在这个数组中是最大的,但是后面的6,7,8,10根本就没有去比较
想麻烦问下具体的代码怎么写 谢谢
回复列表 (共2个回复)
沙发
sorcer71222 [专家分:1590] 发布于 2010-04-17 21:50:00
/**
* 项目名称:Test
* 包名称:
*
* @author Administrator zy
* 创建时间 2010-4-17 下午09:40:35
*
* tags:
*
* 判断数据第一个数据是否为最大值。
* 1.是 显示“第一个元素是最大值”
* 2.否 显示“第一个元素不是最大值”
* 3.是 但不唯一 显示“第一个元素不是唯一的”
*/
public class Test2 {
public static void main(String[] arg) {
int[] arrayInt = new int[] { 2, 4, 1, 6, 7, 8, 10 };
int max = 0; //数据最大值下标
boolean only = true; //数据最大值是否唯一
// 循环的出数据最大值下标
for (int i = 0; i < arrayInt.length - 1; i++) {
if (arrayInt[0] < arrayInt[i + 1]) {
max = i + 1;
} else if (only && max == 0 && arrayInt[0] == arrayInt[i + 1]) {
// 循环中如果数组第一个值目前是唯一并是最大值,判断是否有重复
only = false; //如果有重复唯一标识为假
}
}
// 拼凑输出数组
StringBuffer outStr = new StringBuffer("第一个元素");
if (max == 0) { //数组最大下标如果是对应第一个数值
if(!only){ //唯一标识如果为假
outStr.append("不是唯一的。");
}else{ //唯一标识如果为真
outStr.append("是最大值。");
}
}else{ //最大值下标不是数组第一个数据
outStr.append("不是最大值。");
}
System.out.println(outStr.toString());
}
}
板凳
sxm227 [专家分:10] 发布于 2010-05-13 10:15:00
深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询
我来回复