数组:一组相同的类型的数据。
使用数组可以用来存储一组相同类型的数据,从而极大的提高了存储以及运算的效率。
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女性点击,有女朋友的男性也可以点哦,单身男性尽量不要点。。