A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 党传才 中级黑马   /  2012-4-15 00:11  /  1493 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
}
}
这个程序跑不起来 为什么呢??

7 个回复

倒序浏览
你在main中定义的sum是局部变量,在 Fangfa2方法中就会报sum没有定义的错误

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
你的sum变量是局部变量,所以main方法中的sum是不能在fangfa2中使用的,把sum定义在fangfa2中就行了

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
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);
}
}

回复 使用道具 举报
要把main函数中的 int sum=0; 放入到fangFa2中去   fangFa2中的函数怎么会调用main函数里的sum
还有那个方法名 第一个单词要小写第二个单词的首字母要大写
应该就那么多吧  楼下请补充

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
晕死 两分钟 4个回复 我以为我沙发
回复 使用道具 举报
看你好多问题 都是提的代码运行不了的,大多都是少打一些关键性的东西。这些细节自己找比较好,自己找到了以后就不会再犯了,个人建议哈~~~!  
回复 使用道具 举报
sum必须是全局变量才行,在for循环里面sum只是局部变量,出了这个{}就不能 被调用了。把sum定义在for循环外面就行了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马