---
# System prepended metadata

title: 'Java第11週[JPA501~502 第五類題組-陣列(宣告+for、浮點宣告+for、二維陣列+雙重for迴圈)]'
tags: [複習用, JAVA課堂學習, 高科大]

---

# Java第11週[JPA501~502 第五類題組-陣列(宣告+for、浮點宣告+for、二維陣列+雙重for迴圈)]

#### 複習用

## 開始解題(JPA501~502):
#### 陣列:
為了程式處理方便，把具有 **相同類型**的若干**變數**
**按有序的形式** 組織起來
![](https://i.imgur.com/VdNmtw8.png)

##### 宣告
```java=1
int[] a=new int[10];    //陣列標準寫法 (記憶體空間[長度]為10)
int a[]=new int[10];    //不影響

int[] a={0,1,2,3,4,5,6,7,8,9};    //指定初始值寫法
```
* 在Java中只要看到**new**，一定就是**建立物件**，這個語法代表**陣列就是物件**。

##### 對應初始值
```java=1
int[] a={88,59,21};    //指定初始值寫法

a[0]=88;
a[1]=59;
a[2]=21;
```
[參考文章](https://caterpillar.gitbooks.io/javase6tutorial/content/c5_1.html)
### 第一題(JPA501)-陣列計算[使用陣列宣告+for迴圈計算]:

![](https://i.imgur.com/rRGw0CP.png)
解答:
```java
import java.util.Scanner;
public class JPA501
{
	static Scanner keyboard=new Scanner(System.in);
	public static void main(String args[])
	{	
		System.out.println("請輸入10個整數");
		int []a=new int [10];  //宣告一個整數陣列a，共有10個元素
		for(int n=0;n<10;n++)			//一塊處理[輸入值]
		{                      //可用a.length
			System.out.printf("第%d個整數:",n+1);
			a[n]=keyboard.nextInt();    //存入a[i],i=0~9
		}
		
		int count=0,sum=0;            //指名陣列的每一個元素
		for(int n=0;n<10;n++)			//另一塊處理[額外計算]
		{                     //可用a.length(陣列a的元素個數)
			if(a[n]>60)
			{
				count++;
				sum+=a[n];
			}
		}
		System.out.printf("陣列中大於60的有%d個\n",count);
		System.out.println("總合為"+sum);
		System.out.println("平均值為"+(double)sum/count);
	}
}
```
---
### 第二題(JPA502)-浮點數計算[使用浮點陣列宣告+for迴圈計算]:

![](https://i.imgur.com/C2g0PTX.png)
![](https://i.imgur.com/DSuev3L.png)
解答:
```java
import java.util.Scanner;
public class JPA502
{
	static Scanner keyboard=new Scanner(System.in);
	public static void main(String args[])
	{
		System.out.print("請輸入學生人數:");
		int n=keyboard.nextInt();
		float[] score=new float [n];

		for(int i=0;i<n;i++)    //一塊處理[輸入值]
		{                        //可用score.length
			System.out.printf("第%d個學生的成績:",i+1);
			score[i]=keyboard.nextFloat();
		}

		float sum=0;            //float sum=0.0f;
		for(int i=0;i<n;i++)    //另一塊處理[額外計算]
		{                       //可用score.length
			sum+=score[i];
		}
		System.out.println("人數:"+n);
		System.out.printf("總分:%.6f\n",sum); //用println會變成小數兩位
		System.out.println("平均:"+sum/n);
	}
}
```
---
### 第三題(額外題)-分別列出學生各科成績+計算各學生、各科平均值[使用二維陣列+雙重for迴圈]:
![](https://i.imgur.com/yJ715GO.jpg)
### 題目:
#### 五個學生，三個科目
1. 分別輸入並列出各學生各科成績
2. 計算出各學生成績平均(第四行)
3. 計算出各科成績平均(第六列)

![](https://i.imgur.com/SOWn2lW.png)

解答:
```java
import java.util.Scanner;
public class JPA05
{
	static Scanner keyboard=new Scanner(System.in);
	public static void main(String args[])
	{
		int[][] score=new int [5][3];
		for(int i=0;i<5;i++)
		{
			for(int j=0;j<3;j++)
			{                        //輸入結果不太相同，請參考第12週
				System.out.printf("請輸入第%d個學生\n第%d個科目成績:",i+1,j+1);
				score[i][j]=keyboard.nextInt();
			}
		}
		
		int sum=0,avg=0;
		for(int i=0;i<5;i++)
		{
			sum=0;
			for(int j=0;j<3;j++)
			{
				System.out.print(score[i][j]+" ");
				sum+=score[i][j];				
			}
			System.out.print(sum/3);
			System.out.print("\n");
		}				

		for(int j=0;j<3;j++)
		{
			avg=0;
			for(int i=0;i<5;i++)
			{
				avg+=score[i][j];
			}
			System.out.print(avg/5+" ");
		}
	}
}
```
---
最後編輯時間:2021/5/12 5:25pm.
###### tags: `JAVA課堂學習` `複習用` `高科大`