黑马程序员技术交流社区
标题:
大神看过来,帮忙解决这个代码问题
[打印本页]
作者:
走遍世界找寻你
时间:
2013-11-1 22:41
标题:
大神看过来,帮忙解决这个代码问题
本帖最后由 走遍世界找寻你 于 2013-11-19 20:28 编辑
class PersonDemo1 {
public static void main(String[] args) {
int[] temp={1,4,7,9,13,34,45,66,70};
System.out.println(arrayRev(temp));
}
public static void arrayRev(int[] arr) {
for (int x = 0;x<arr.length/2 ;x++ ) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
为什么变异通不过,提示输出语句为空?
作者:
不抛弃不放弃
时间:
2013-11-1 22:55
你怎么少一个 大括号
作者:
不抛弃不放弃
时间:
2013-11-1 22:57
你那个int[]arr 是什么 他有多少长度啊 你这个写的代码有问题 这是完整的代码按摩
作者:
魏-玉-彪
时间:
2013-11-1 23:03
class PersonDemo1 {
public static void main(String[] args) {
int[] temp={1,4,7,9,13,34,45,66,70};
System.out.println(arrayRev(temp)); //这里打印输出的是arrayRev(temp) 的返回值,
//因为返回的数组所以,输出的是arrayRev(temp) 的内存地址
}
public static int[] arrayRev(int[] arr) { //这里,用void 修饰表示无返回值类型,
与前面的打印语句冲突//可改为反回数组类
for (int x = 0;x<arr.length/2 ;x++ ) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
return arr;// 这里要有反回值
}
}
复制代码
作者:
卑微の小幸福
时间:
2013-11-1 23:16
这肯定不是完整代码!这时反转对不?你少了遍历的代码?
class Test2 {
public static void main(String[] args) {
int[] temp = {1,4,7,9,13,34,45,66,70};
arrayRev(temp);
for (int x = 0;x <temp.length;x++ ) {
System.out.println(temp[x]);
}
}
public static void arrayRev(int[] arr){
for (int x = 0;x<arr.length/2;x++) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
}
作者:
王东
时间:
2013-11-1 23:20
你这段代码是有几处错误
class PersonDemo1 {
public static void main(String[] args) {
int[] temp = { 1, 4, 7, 9, 13, 34, 45, 66, 70 };
System.out.println(arrayRev(temp)); //如果这样输出的话,输出的是这个数组的地址,
//如果想输出数组中的值,建议遍历输出或者Arrays.toString(arrayRev(temp));
}
public static int[] arrayRev(int[] arr) { //既然前面定义在输出语言中,这个不能返回为void,应该返回int[]
for (int x = 0; x < arr.length / 2; x++) {
int temp = arr[x];
arr[x] = arr[arr.length - 1 - x];
arr[arr.length - 1 - x] = temp;
}
return arr; // 返回一个数组
}
} //最后这里少一个 }
作者:
明月几时有
时间:
2013-11-2 20:51
楼主,你最大的问题就是打印数组要用遍历,不能直接打印,直接打印出来的只是地址值,楼上几位说的很清楚了。另外补充一种方法,希望对楼主有用。
class Demo1 {
/**
* @param args
*/
public static void main(String[] args) { //数组反转
int[] arr ={1,2,3,4,5,6,7};
revArray1(arr);
revArray2(arr);
printArray(arr);
}
private static void revArray1(int[] arr) { //反转方法一
for(int x=0;x<arr.length/2;x++){
int temp=arr[x];
arr[x]=arr[arr.length-1-x];
arr[arr.length-1-x]=temp;
}
}
public static void revArray2(int[] arr){ //反转方法二
for(int start=0,end=arr.length-1;start<end;start++,end--){
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
public static void printArray(int[] arr) { //打印方法:遍历
for(int x=0;x<arr.length;x++){
System.out.print(arr[x]);
}
}
}
作者:
走遍世界找寻你
时间:
2013-11-3 20:38
谢谢各位的热情回答我知道怎么回事了
作者:
冯国强
时间:
2013-11-3 22:03
public static void arrayRev(int[] arr) {
for (int x = 0;x<arr.length/2 ;x++ ) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
以上方法参数是int型的数组,返回值为空void。所以主函数调用该函数的语句System.out.println(arrayRev(temp));实际上就是输出空,编译失败
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2