黑马程序员技术交流社区
标题:
帮忙调试一下
[打印本页]
作者:
yangyinhui
时间:
2013-4-6 19:33
标题:
帮忙调试一下
本帖最后由 yangyinhui 于 2013-4-6 20:46 编辑
public static void main(String[] args) {
int[] arr = { 1, 8, 12, 3,5,2 };
for (int i = 0; i < arr.length; i++) {
for (int j = 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int srr = arr[i];
arr[i] = arr[j];
arr[j] = srr;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
复制代码
我自己写的数组排序,为什么输出结果是:
1
12
8
5
3
2
我想的到的是从大到小,为什么1没有排序啊?我调试了很久没得到结果
作者:
杨武林
时间:
2013-4-6 19:39
本帖最后由 杨武林 于 2013-4-6 19:57 编辑
public static void main(String[] args) {
int[] arr = { 1, 8, 12, 3,5,2 };
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if (arr
> arr[j]) {
int srr = arr
;
arr
= arr[j];
arr[j] = srr;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr
);
}
}
}
作者:
邵震
时间:
2013-4-6 19:57
本帖最后由 邵震 于 2013-4-6 19:59 编辑
class Java0406d2
{
public static void main(String[] args)
{
int[] arr = { 1, 8, 12, 3,5,2 };
for (int i = 0; i < arr.length; i++)
{
for (int j = i+1; j < arr.length; j++) //这里你开始是int j=1 你第一次循环的时候没错 第二次开始他就开始捣乱了。
{
if (arr[i] > arr[j])
{
int srr = arr[i];
arr[i] = arr[j];
arr[j] = srr;
}
}
}
for (int i = 0; i < arr.length; i++)
{
System.out.print(arr[i]+" ");
}
}
}
复制代码
你就错在一个小地方 你内循环的值设置错了
作者:
尹丽峰
时间:
2013-4-6 19:59
public class 排序 {
public static void main(String[] args) {
int[] arr = { 1, 8, 12, 3, 5, 2 };
for (int i = 0; i <= arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
int srr = arr[i];
arr[i] = arr[j];
arr[j] = srr;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
作者:
谷文仁
时间:
2013-4-6 20:02
public static void main(String[] args) {
int[] arr = { 1, 8, 12, 3, 5, 2 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-1; j++) {
if (arr[j] > arr[j+1]) {
int srr = arr[j];
arr[j] = arr[j+1];
arr[j+1] = srr;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
复制代码
作者:
yangyinhui
时间:
2013-4-6 20:45
明白了,谢谢。。
作者:
杜加璇
时间:
2013-4-6 20:51
01.public static void main(String[] args) {
02. int[] arr = { 1, 8, 12, 3,5,2 };
03. for (int i = 0; i < arr.length; i++) {
04. for (int j = i+1; j < arr.length; j++) { //这里改成i+1就好了,因为这如果是1的话第二次循环还是j还是从1开始的
05. if (arr[i] > arr[j]) {
06. int srr = arr[i];
07. arr[i] = arr[j];
08. arr[j] = srr;
09.
10. }
11. }
12.
13. }
14. for (int i = 0; i < arr.length; i++) {
15. System.out.println(arr[i]);
16.
17. }
18. }
19.
20.}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2