數組:一組相同的類型的數據。
使用數組可以用來存儲一組相同類型的數據,從而極大的提高了存儲以及運算的效率。
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女性點擊,有女朋友的男性也可以點哦,單身男性儘量不要點。。