Java學習日記之數組


數組:一組相同的類型的數據。

使用數組可以用來存儲一組相同類型的數據,從而極大的提高了存儲以及運算的效率。

1.一維數組的定義

常用的三種形式:

int array[ ] = new int [10];

int [ ] a = new int [5];

int a[ ];a = new int [5];

無論是哪種形式都是在定義的時候在內存中創建了一個連續的空間,以保存連續的數據。

2.一維數組的賦值

常用形式:

int array[ ] = {1,2,3,4,5}

還有一種就是在數組中逐個賦值:

for(int i = 0;i<=array.length-1;i++)

{

      array[i] = i;     //或者其他的值,是具體情況而定

}

3.實際的一維數組的應用:

(1).某同學考試成績共6門,分別爲85、74、91、68、77、81。求這位同學的總成績和平均成績。

示例代碼(代碼僅作示例用,實際編程注意變量名等多方因素):

int sum = 0;
double average = 0;
int array[] = {0,85,74,91,68,77,81};    
//數組大小定義爲7,在使用的時候將第一個array[0]初始化爲0,
//計算的時候從array[1]到array[6],根據生活中的常用習慣。
for(int i=1;i<=6;i++)
{
sum+=array[i];
}
average = (double)sum/6;
System.out.println("該同學的總成績是:"+sum);
System.out.println("該同學的平均成績是:"+average);

(2).某同學6課成績分別是85、74、91、68、77、81,請將該同學的成績從低到高排列。

示例代碼(代碼僅作示例用,實際編程注意變量名等多方因素):

int array[] = {85,74,91,68,77,81};
int temple = 0;
System.out.println("排序前的成績爲:");
for(int i= 0;i<=5;i++)
{
System.out.print(array[i]+"  ");
}
for(int i=0;i<=5;i++)                           //此排序可進一步優化,減少運算量
{
for(int j=0;j<=5;j++)
{
if(array[j]>array[i])
{
temple = array[j];
array[j] = array[i];
array[i] = temple;
}
}
}
System.out.println();
System.out.println("排序後的成績爲:");
for(int i= 0;i<=5;i++)
{
System.out.print(array[i]+"  ");
}

(3)可以使用數組輸出任意數據段之間的素數或者合數(本例輸出1--100):

示例代碼:

//算法思想:從數據段中一次排除1,2,3,4~~~的倍數。

int array[] = new int[101];//數組大小定義爲101,爲了方便對應0-101
for(int i=0;i<=100;i++)
{
array[i]=i;
}
for(int i=2;i<=100;i++)       
{
for(int j=i+1;j<=100;j++)  
{
if(i==0)
{
break;
}
   else if(j%i==0)
{
array[j]=0;
}
}
}
for(int i=0;i<=100;i++)
{
if(array[i]!=0)
{
System.out.println(array[i]);
}
}

4.二維數組

二維數組的定義形式:

int array[ ] [ ] = new int[3][4];

int array [ ] [ ] = {{1,2,3},{4,5,6}};

int array[ ] [ ] = new int [3][]; array[0] = new int array[4];array[1] = new int array[5];array[2] = new int array[5];     //將二維數組看作存儲一維數組的數組。

二維數組的使用:

某小組有6名同學,每名學生有3門功課:數學、語文、英語。

學號                 數學                 語文                 英語

1                       67                      78                    89

2                       76                      88                    92

3                       81                      69                    95

4                       66                      72                   90

5                       80                      91                    79

6                       85                      79                    84

求出:

(1)該小組的各科成績的平均分

(2)該小組各名同學成績的平均分

(3)該小組的那位同學偏科情況最嚴重(即該同學各科成績與平均分之差的平方和最大)

示例代碼:

public static void main(String[]args){
int i,j,sum=0,temp;//i,j分別是行值和列值,sum表示和值,temp用作臨時變量
//定義二維數組,存儲該小組的成績
int score[][] = {{0,0,0},
{67,78,89},
{76,88,92},
{81,69,95},
{66,72,90},
{80,91,79},
{85,79,84}};
double average [] = new double[3]; //科目平均分
double student [] = new double[7]; //學生平均分
double var [] = new double[7];     //學生成績方差
//求科目平均分
for(j=0;j<=2;j++)
{
for(i=1;i<=6;i++)
{
average[j]+=score[i][j];
}
average[j]/=6;
}
//求學生平均分
for(i=1;i<=6;i++)
{
for(j=0;j<=2;j++)
{
student[i]+=score[i][j];
}
student[i]/=3;
}
//求學生成績方差
for(i=1;i<=6;i++)
{
for(j=0;j<=2;j++)
{
var[i]+=(score[i][j]-student[i])*(score[i][j]-student[i]);
}
}
//求最大方差
temp=1;
for(i=2;i<=6;i++)
{
if(var[i]>var[temp])
{
temp=i;
}
}
//輸出結果
System.out.println("各科目的平均分爲:");
System.out.println("數學"+average[0]);
System.out.println("語文"+average[1]);
System.out.println("英語"+average[2]);
System.out.println("各位同學的平均分爲:");
for(i=1;i<=6;i++)
{
System.out.println("學號:"+i+"  平均分:"+student[i]);
}
System.out.println("偏科最嚴重同學爲:");
System.out.println("學號"+temp);
}



https://shop145619674.taobao.com/?spm=a313o.7775905.1998679131.d0011.inZI48女性點擊,有女朋友的男性也可以點哦,單身男性儘量不要點。。

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章