黑马程序员技术交流社区

标题: 一个程序求改 大家帮忙来看看~~ [打印本页]

作者: 党传才    时间: 2012-4-15 00:11
标题: 一个程序求改 大家帮忙来看看~~
class Paixu
{
public static void Fangfa(int[] Jieshou)
/*定义一个方法:Fangfa,参数为数组类型,这个方法的功能是把数组进行从小到大的顺序
排列,并打印出结果。*/
{
for(int x=0;x<Jieshou.length-1;x++)
//定义数组中每个元素的比较次数,为什么要-1那是因为最后一个值没有必要和它自己比较
{
for(int y=x+1;y<Jieshou.length;y++)
//为什么是y=x+1,而不是y=x,因为自己和自己比较是没有意义的
{
if(Jieshou[x]>Jieshou[y])
{
//当jieshou[x]的值大于Jieshou[y]的值就互换,并把这个最小值赋给头标
int a=Jieshou[x];
Jieshou[x]=Jieshou[y];
Jieshou[y]=a;
}
}
System.out.print(Jieshou[x]);
//内循环第一次结束后把头标的值打印,其实每次循环结束,它都打印一个值
}
}
public static void main(String args[])
{
int sum=0;
int[] name={9,2,3,1,4,6,5,8,7};
Fangfa(name);
Fangfa2(name);

}
public static void Fangfa2(int[] Jieshou2)
{
for(int x=0;x<Jieshou2.length;x++)
{
sum=sum+Jieshou2[x];
}
System.out.println("这些数字加起来的和为:"+sum);
}
}
这个程序跑不起来 为什么呢??

作者: 胡生蒙    时间: 2012-4-15 00:26
你在main中定义的sum是局部变量,在 Fangfa2方法中就会报sum没有定义的错误
作者: 尹博    时间: 2012-4-15 00:26
你的sum变量是局部变量,所以main方法中的sum是不能在fangfa2中使用的,把sum定义在fangfa2中就行了
作者: 马强    时间: 2012-4-15 00:27
public static void main(String args[])
{
int sum=0;
int[] name={9,2,3,1,4,6,5,8,7};
Fangfa(name);
Fangfa2(name);

}
public static void Fangfa2(int[] Jieshou2)
{
for(int x=0;x<Jieshou2.length;x++)
{
sum=sum+Jieshou2[x]; //sum是局部的,根本没有定义。所以下面提示找不到。把sum定义到这里成员来就行了,for外边 int sum =0;
}
System.out.println("这些数字加起来的和为:"+sum);
}
}


作者: 高铭    时间: 2012-4-15 00:28
要把main函数中的 int sum=0; 放入到fangFa2中去   fangFa2中的函数怎么会调用main函数里的sum
还有那个方法名 第一个单词要小写第二个单词的首字母要大写
应该就那么多吧  楼下请补充
作者: 高铭    时间: 2012-4-15 00:29
晕死 两分钟 4个回复 我以为我沙发
作者: 贠(yun)靖    时间: 2012-4-15 00:34
看你好多问题 都是提的代码运行不了的,大多都是少打一些关键性的东西。这些细节自己找比较好,自己找到了以后就不会再犯了,个人建议哈~~~!  
作者: 韩新凯    时间: 2012-4-15 08:57
sum必须是全局变量才行,在for循环里面sum只是局部变量,出了这个{}就不能 被调用了。把sum定义在for循环外面就行了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2