Arrays 它赢了';t检查数组是否按升序排列
问题就在这里,它不会检查数组是否按升序排列。↓↓↓强>Arrays 它赢了';t检查数组是否按升序排列,arrays,sorting,Arrays,Sorting,问题就在这里,它不会检查数组是否按升序排列。↓↓↓ System.out.println(""); **//skip a line** int顺序=0; for(int check1=0;check1ary1[check1++]){ System.out.println(“错误:数组顺序不正确。”); 打破 }否则{ 顺序=1; }} for(int check2=0;check2ary2[check2++]){ System.out.println(“错误:数组顺序不正确
System.out.println(""); **//skip a line**
int顺序=0;
for(int check1=0;check1ary1[check1++]){
System.out.println(“错误:数组顺序不正确。”);
打破
}否则{
顺序=1;
}}
for(int check2=0;check2ary2[check2++]){
System.out.println(“错误:数组顺序不正确。”);
打破
}否则{
顺序=1;
}}
}}
} }}}
如果inOder=1,我需要合并这两个数组。您的问题在于如何递增check1和check2变量:
int inOrder = 0;
for (int check1 = 0; check1 < count1-1; check1++){
if (ary1[check1] > ary1[check1++]){
System.out.println("Error: Array not in correct order.");
break;
}else{
inOrder = 1;
}}
for (int check2 = 0; check2 < count2-1; check2++){
if (ary2[check2] > ary2[check2++]){
System.out.println("Error: Array not in correct order.");
break;
}else{
inOrder = 1;
}}
}}
} }}}
对于这些循环,您使用的是check1++
和check2++
。将++
放在变量名的末尾,计算结果为增量之前的表达式值。将++
放在变量名之前,首先递增变量,然后计算表达式。修复方法是重新定位您的++
,如下所示:
if (ary1[check1] > ary1[check1++]){ }
if (ary2[check2] > ary2[check2++]){ }
请阅读本文,以便更好地理解前缀/后缀运算符:
更新:其他用户注意到,由于循环控制也在执行++,因此增量实际上发生了两次。若要修复,请将++check1
替换为check+1
。我几乎感到内疚,认为这是正确的 问题出在++上:
if (ary1[check1] > ary1[++check1]){ }
if (ary2[check2] > ary2[++check2]){ }
将此更改为:
if (ary1[check1] > ary1[check1++])
这只会在每次检查一对时进行检查,因为check1或check2将在每个循环中递增2。示例0,2,1,3=第一个循环比较有效的0和2,然后比较同样正确的1和3。它跳过了检查2和1,因此不会给出正确的结果良好的catch@Geezer68——没有仔细查看外部循环代码我也会帮助他们进行顺序检查——最初应设置为true,在break语句之前仅设置为false:)
int inOrder = 0;
for (int check1 = 0; check1 < count1-1; check1++){
if (ary1[check1] > ary1[check1++]){
System.out.println("Error: Array not in correct order.");
break;
}else{
inOrder = 1;
}}
for (int check2 = 0; check2 < count2-1; check2++){
if (ary2[check2] > ary2[check2++]){
System.out.println("Error: Array not in correct order.");
break;
}else{
inOrder = 1;
}}
}}
} }}}
if (ary1[check1] > ary1[check1++]){ }
if (ary2[check2] > ary2[check2++]){ }
if (ary1[check1] > ary1[++check1]){ }
if (ary2[check2] > ary2[++check2]){ }
if (ary1[check1] > ary1[check1++])
if (ary1[check1] > ary1[check1 + 1])