Java基础——【习题三】数组练习题
【习题三】数组练习题
1、定义⼀个数组来存储12个学⽣的成绩{72,89,65,58,87,91,53,82,71,93,76,68},计算并输出学⽣的平均成绩。
package t3;
public class TestArray1{
public static void main(String[]args){
int []a={72,89,65,58,87,91,53,82,71,93,76,68};//显⽰初始化数组a,将学⽣成绩存到数组
double sum;//为了平均成绩的精确,定义成绩的和为double类型
sum=0;
for(int i=0;i<a.length;i++){
sum=sum+a[i];
}
System.out.println("学⽣成绩的平均数是:"+sum/a.length);//打印平均成绩
}
}
2、定义⼀个数组来存储12个学⽣的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为E)学⽣⼈数,并将其放⼊到数组count中,其中:count[0]存E级的⼈数,count[1]存D级的⼈数,……,count[4]存A级的⼈数。
//90以上 count[4]++
//80~89 count[3]++
//70~79 count[2]++
//60~69 count[1]++
//60以下 count[0]++
package t3;
public class TestArray2{
public static void main(String[]args){
int []a={72,89,65,58,87,91,53,82,71,93,76,68};//显⽰初始化数组a,将学⽣成绩存到数组
int []count=new int[5];//定义⼀个数组存储成绩每等级个数
for(int i=0;i<a.length;i++){//遍历数组a
if(a[i]>=90){//if else语句分级,并将个数存到对应空间中
count[4]++;
}else if(a[i]>=80){
count[3]++;
}else if(a[i]>=70){
count[2]++;
}else if(a[i]>=60){
count[1]++;
}else{
count[0]++;
}
/*
if(score[i]>=60){//归纳出简便⽅法
count[score[i]/10-5]++;
}else{
count[0]++;
}
*/
}
System.out.print("A等级\tB等级\tC等级\tD等级\tE等级\t");
System.out.println();
for(int j=count.length-1;j>=0;j--){//从后往前遍历count
System.out.print(" "+count[j]+"\t");
}
}
}
3、从键盘输⼊8个整数存放在⼀个数组中,然后将奇数和偶数分别存⼊到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。(提⽰与要求:(1)定义⼀个数组存储从键盘输⼊的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;(2)把⼀个⼤的数组分别存放在奇数和偶数数组中并交替输出的过程定义为⽅法)
package t3;
import java.util.Scanner;
public class TestArray3{
public static void main(String []args){
Scanner sc=new Scanner(System.in);//读⼊数据
int a[]=new int[8];
System.out.print("请输⼊8个数:");
for(int i=0;i<a.length;i++){
a[i]=sc.nextInt();
}
Array(a); //调⽤函数Array()
}
public static void Array(int[]num){
int []oddNum;//奇数数组
int []evenNum;//偶数数组
int evenCount=0;
int oddCount=0;
for (int i = 0; i < num.length; i++) {
if(num[i]%2==0){
evenCount++;
}else{
oddCount++;
}
}//循环结束已经统计出了num数组中偶数的个数为evenCount,奇数的个数为oddCount
oddNum=new int[oddCount];
evenNum=new int[evenCount];
int e=0,o=0;
for (int i = 0; i < num.length; i++){
if(num[i]%2==0){
evenNum[e]=num[i];
e++;
}else{
oddNum[o]=num[i];
o++;
}
}//此时已经将数组num按照奇数、偶数分拣到两个数组oddNum,evenNum中
if(evenNum.length>oddNum.length){//如果偶数个数较多
for(int i=0;i<=oddNum.length-1;i++){
System.out.print(oddNum[i]+" "+evenNum[i]+" ");
}//先按照奇数的个数交替输出
for(int i=oddNum.length;i<=evenNum.length-1;i++){
System.out.print(evenNum[i]+" ");
}//输出剩下的偶数
}else{
for(int i=0;i<=evenNum.length-1;i++){
System.out.print(oddNum[i]+" "+evenNum[i]+" ");
}//先按照偶数的个数交替输出
for(int i=evenNum.length;i<=oddNum.length-1;i++){
System.out.print(oddNum[i]+" ");
}//输出剩下的奇数
}
}
}
4、实现如下的排序算法:有⼀种简单的排序⽅法叫计数排序法,这种排序算法对⼀个待排序的数组进⾏排序,并将排序结果放到另⼀个新的数组中。计数排序算法针对待排序数组中的每个数据,扫描待排序的数组⼀趟,统计待排序数组中有多少个数据的值⽐该数据的值⼩。假设针对某⼀个记录,统计出的计数值为c,那么,这个记录在新的有序数组中的合适的存放位置即为c。
程序框架如下,补充完整:
public class CountSort
{
public static void countSort(int n[])//对数组n进⾏计数排序的⽅法
{
int m[]=new int[n.length];//定义排序后的数组m
int count[]=new int[n.length];//记录数组n中某个数据在数组m中的位置
/
*
a数组元素a[0]a[1] a [2] a [3] a [4] a [5] a [6]
a[i]的值7406251 count数组
元素
count[0]count[1]count[2]count[3]count[4]count[5]count[6]
最终统计出的count[i]的值应该为6java定义一维数组并赋值
(代表⽐a[0]⼩的数有
6个,a[0]在数组m中
的下标应该为6)
3
(代表⽐a[1]⼩的数有
3个,a[1]在数组m中
的下标应该为3)
(代表⽐a[2]⼩的数有
0个,a[2]在数组m中
的下标应该为0)
5
……
2
…..
4
……
1
…….
*/
……………………..…………………………………………………………………….
for(int i=0;i<m.length;i++)//输出排序后的数组{
System.out.print(m[i]+" ");
}
System.out.println();
}
public static void main(String[] args)
{
int a[]={7,4,0,6,2,5,1};
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论