package p;
public class pric {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores={61,148, 23, 4, 74, 13, 20} ;
int i=0,j=0,max=scores[i],min=scores[j],sum=0;
float avg=0;
for(;i<6;i++,j++) {
sum=sum+scores[i];
if(scores[i]<scores[i+1]) {
max=scores[i+1];
if(scores[j]<scores[j+1]) {
min=scores[j];
}
}
}
avg=sum/7;
System.out.println("数组中的最大值"+max);
System.out.println("数组中的最小值"+min);
System.out.println("数组中的元素总和"+sum);
System.out.println("数组中的平均值"+avg);
}
}
sum=sum+scores[i];
if(scores[i]<scores[i+1]) {
max=scores[i+1];
按你这个循环来 1 ,3 , 1 , 2 取的是2 不是最大,这个只是两个相邻数比大小且最终就是取最后两位数里的最大值,同理最小值也是一样。
你的最大、最小值的比较逻辑弄错了,i和i+1比较,只会调换这两者的位置。例如第一次循环比较0和1的大小, 第二次循环比较的是1和2的大小,只是相邻位置的两两换位,起不到把最大值冒泡出来的作用。还有就是 你的if语句嵌套了if语句,这俩个比较应该在同一个层级,不存在嵌套关系。我修改后的代码如下: public class HelloWorld { public static void main(String[] args) { int[] scores={61,148, 23, 4, 74, 13, 20} ; int i=0,j=0,max=scores[0],min=scores[0],sum=0; float avg=0; for(;i<6;i++,j++) { sum=sum+scores[i]; if(max>scores[i]) { max=scores[i];} if(min<scores[j]) { min=scores[j]; } } avg=sum/7; System.out.println("数组中的最大值"+max); System.out.println("数组中的最小值"+min); System.out.println("数组中的元素总和"+sum); System.out.println("数组中的平均值"+avg); } }
int[] nums = { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0];
int min = nums[0];
double sum = 0;
double avg = 0;
for (int i = 0; i < nums.length; i++) {
// 如果当前值大于max,则替换max的值
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
sum += nums[i];
}
avg = sum / nums.length;
System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
System.out.println("求和:" + sum);
System.out.println("平均:" + avg);
看不懂你写的,冒泡不像冒泡,找最值又显得麻烦,代码繁琐
这样子好像第7个没有比较,当i为6时就不会执行循环了
avg=sum/7;
System.out.println("数组中的最大值"+max);
System.out.println("数组中的最小值"+min);
System.out.println("数组中的元素总和"+sum);
System.out.println("数组中的平均值"+avg);
不可以放在类外
if(scores[i]<scores[i+1]) {
max=scores[i+1];
if(scores[j]<scores[j+1]) {
min=scores[j];
貌似是起不到排序作用的
public class pric{
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] scores={61,148, 23, 4, 74, 13, 20} ;
int i=0,max=scores[0],min=scores[0],sum=0;
float avg=0;
for(;i<scores.length;i++) {
sum=sum+scores[i];
if(max<scores[i]) {
max=scores[i];
}
if(min>scores[i]) {
min=scores[i];
}
}
avg=sum/7;
System.out.println("数组中的最大值"+max);
System.out.println("数组中的最小值"+min);
System.out.println("数组中的元素总和"+sum);
System.out.println("数组中的平均值"+avg);
}
}
我也是小白,试了不行不要打我哈,嘎嘎嘎嘎~~~~
int max=scores[0],min=scores[0],sum=0;
float avg=0;
for(int i=0;i<6;i++) {
sum=sum+scores[i];
if(max<scores[i]) {
max=scores[i];
if(min>scores[i]) {
min=scores[i];
我认为应该是这样的,你试试