定义一个整型数组,求出数组中元素的和,最大值及最小值。(java编写)
publicclassF04{publicstaticvoidmain(String[]args){intArr[]={1,3,4,56,77,88,33,23,21};...
public class F04
{public static void main(String[] args){
int Arr[]={1,3,4,56,77,88,33,23,21};
int max=0;
int min=0;
int sum=0;
for(int i=1;i<Arr.length;i++){
sum+=Arr[i];
for(int j=0;j<Arr.length;j++){
if(Arr[i]>Arr[j]){
max=Arr[i];}
if(Arr[i]<Arr[j]){
min=Arr[i];
}
}
}
System.out.println("数组中最大值为:"+max);
System.out.println("数组中最小值为:"+min);
System.out.println("数组中元素的和为:"+sum);
}
}
可是输出结果是:数组中最大值为:21
数组中最小值为:21
数组中元素的和为:305
想知道这个程序哪个地方不对?请教……谢谢~! 展开
{public static void main(String[] args){
int Arr[]={1,3,4,56,77,88,33,23,21};
int max=0;
int min=0;
int sum=0;
for(int i=1;i<Arr.length;i++){
sum+=Arr[i];
for(int j=0;j<Arr.length;j++){
if(Arr[i]>Arr[j]){
max=Arr[i];}
if(Arr[i]<Arr[j]){
min=Arr[i];
}
}
}
System.out.println("数组中最大值为:"+max);
System.out.println("数组中最小值为:"+min);
System.out.println("数组中元素的和为:"+sum);
}
}
可是输出结果是:数组中最大值为:21
数组中最小值为:21
数组中元素的和为:305
想知道这个程序哪个地方不对?请教……谢谢~! 展开
2个回答
展开全部
public static void main(String[] args)
{
int Arr[] =
{ 1, 3, 4, 56, 77, 88, 33, 23, 21 };
int max = 0;
int min = 0;
int sum = 0;
for (int i = 0; i < Arr.length; i++)
{
sum += Arr[i];
for (int j = 0; j < Arr.length; j++)
{
if (Arr[i] > Arr[j] && max < Arr[j]) //这里需要判断一下 如果比当前最大值大 就更改当前最大的值
{
max = Arr[i];
}
if (min == 0)//由于之前最小值是0 所以先需要改变一下
{
min = Arr[i];
if (Arr[i] < Arr[j] && min > Arr[j])
{
min = Arr[i];
}
} else
{
if (Arr[i] < Arr[j] && min > Arr[j])
{
min = Arr[i];
}
}
}
}
System.out.println("数组中最大值为:" + max);
System.out.println("数组中最小值为:" + min);
System.out.println("数组中元素的和为:" + sum);
}
在你代码上改了下。..楼上的也说了 你的判断不够完整
所以执行的时候稍微有点问题 还有你的最外层的循环需要从0开始。数组的第一个是从0开始的
否则会少循环一个数
{
int Arr[] =
{ 1, 3, 4, 56, 77, 88, 33, 23, 21 };
int max = 0;
int min = 0;
int sum = 0;
for (int i = 0; i < Arr.length; i++)
{
sum += Arr[i];
for (int j = 0; j < Arr.length; j++)
{
if (Arr[i] > Arr[j] && max < Arr[j]) //这里需要判断一下 如果比当前最大值大 就更改当前最大的值
{
max = Arr[i];
}
if (min == 0)//由于之前最小值是0 所以先需要改变一下
{
min = Arr[i];
if (Arr[i] < Arr[j] && min > Arr[j])
{
min = Arr[i];
}
} else
{
if (Arr[i] < Arr[j] && min > Arr[j])
{
min = Arr[i];
}
}
}
}
System.out.println("数组中最大值为:" + max);
System.out.println("数组中最小值为:" + min);
System.out.println("数组中元素的和为:" + sum);
}
在你代码上改了下。..楼上的也说了 你的判断不够完整
所以执行的时候稍微有点问题 还有你的最外层的循环需要从0开始。数组的第一个是从0开始的
否则会少循环一个数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询