//任務:從鍵盤錄入若干學生的成績,計算平均值,最大值,最小值
package com.azhi;//糾正昨天的包名,今天老師說要以反域名命名,昨天還不知道,今天就這麼弄了一個
import java.util.Scanner;
public class Text_Array {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);//從鍵盤輸入
System.out.print("請輸入學生個數:");
int num=sc.nextInt();//等待輸入
double[] nums=new double[num];
for(int i=0;i<nums.length;i++){
System.out.print("請輸入第"+(i+1)+"個學生的成績:");
nums[i]=sc.nextDouble();
}
double result=0;
double avg=0;
for(double n:nums){
result+=n;
avg=result/num;
}
System.out.println("學生的平均成績為:"+avg);
/*============================================================*/
int i=0;
double max=0;
for(i=0;i<nums.length;i++){ //擂台法比較大小
if(nums[i]>max){
max=nums[i];
}
}
System.out.print("他們之中的最高成績是:"+max);
/*============================================================*/
int j=0;
double min=nums[0];
for(j=1;j<=nums.length;j++){
if(min>nums[j]){
min=nums[j];
}
}
System.out.print("\n他們之中的最低成績是:"+min);
sc.close();//關閉輸入流,節省內存,充分利用資源,據說初學者了解意義不大,一個學Java已久的朋友給說的,說有必要養成好習慣
}
}
這是今天學習數組之後做的一個練習。這個題後面求最大最小只其實可以簡寫,但是為了區分故分開。
今天首要的問題就是數組中求最大最小值,開始不太懂,後來才明白,即對於在數組中求最大最小值,最簡單的辦法就是利用“打擂台”的方法,即聲明一個變量,如max,再在循環中依次與各個元素做比較,遇到大於max的元素時,將該元素賦值給max,然後再循環、比較、賦值。其次最大的問題就是當數組,循環,選擇合在一起來做的題目,個人基本是蒙的,可能是知識點掌握不夠,可能是理解還有問題,那幾個題目難住我一下午加一晚上了,頭都昏了,明天聽聽老師講吧。
今天知識點:
數組有這幾個特點:1,每個元素都是連續儲存的。2,每個元素儲存的空間一樣大。3,數組可以做到檢索快速。4,數組儲存空間的大小一旦分配,不可改變。
其他:1,利用length的屬性做實現的for循環可以這樣寫了:for(int i=0;i<name.length;i++){表達式},name.length即是數組name的長度,2,對於數組邊聲明邊賦值的用法:(1)int[] name={1,2,3...};(2)int[] name=new int[]{1,2,3...};數組也可以聲明不賦值,而利用Scanner從鍵盤輸入數據(關鍵語法:import java.util.Scanner;Scanner sc=new Scanner(System.in);int num=sc.nextInt();),單純的數組聲明為:int[] name=new int[num];(僅以int為列)
不同數據類型在數組中對應的默認值:char--□;int--0;long--0;float--0;double--0;String--null;
A_zhi
2016.08.15.23.00