1、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},
统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,
并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数
public static void main(String[] args) {
int[] count=new int[5];
int[] a={72,89,65,58,87,91,53,82,71,93,76,68};
for (int i = 0; i < a.length; i++) {
if (a[i]>=90){
count[4]++;
}else if (a[i]>=80&& a[i]<90){
count[3]++;
}else if (a[i]>=70&& a[i]<80){
count[2]++;
}else if (a[i]>=60&& a[i]<70){
count[1]++;
}else {
count[0]++;
}
}
System.out.println("90分以上的有:"+count[4]);
System.out.println("80~89分为B的有:"+count[3]);
System.out.println("70~79分为C的有:"+count[2]);
System.out.println("60~69分为D的有:"+count[1]);
System.out.println("60分以下为E的有:"+count[0]);
}
2、从键盘输入8个整数存放在一个数组中,然后将奇数和偶数分别存入到两个不同的数组中,
并按奇数、偶数交替的顺序输出这两个数组中的所有数据
(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。
(提示与要求:
(1)定义一个数组存储从键盘输入的8个整数,先判断这8个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;
(2)把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法)
public static void main(String[] args) {
int[] a=new int[8];
for (int i = 0; i < 8; i++) {
System.out.println("请输入第"+(i+1)+"个整数");
Scanner ar= new Scanner(System.in);
a[i]=ar.nextInt();
}
chose01(a);
}
public static void chose01(int a[]){
int x=0,y=0;
for (int i = 0; i < a.length; i++) {
if (a[i]%2==0){
x++;
} else {
y++;
}
}
int[] o=new int[x];
int[] ji=new int[y];
int r1=-1;
int r2=-1;
for (int i = 0; i < a.length; i++) {
if (a[i]%2==0){
r1++;
o[r1]=a[i];
} else {
r2++;
ji[r2]=a[i];
}
}
int[] b=new int[a.length];
System.out.println("输入的八个数为:");
for (int t1:a){
System.out.print(t1+" ");
}
System.out.println();
System.out.println("其中奇数为:");
for (int t2:ji){
System.out.print(t2+" ");
}
System.out.println();
System.out.println("其中偶数为:");
for (int t3:o){
System.out.print(t3+" ");
}
System.out.println();
System.out.println("奇偶交叉输出为:");
if (ji.length>o.length){
for (int i = 0; i < o.length; i++) {
System.out.print(ji[i]+" "+o[i]+" ");
}
for (int i = o.length; i <ji.length ; i++) {
System.out.print(ji[i]+" ");
}
System.out.println();
}else {
for (int i = 0; i < ji.length; i++) {
System.out.print(ji[i]+" "+o[i]+" ");
}
for (int i = ji.length; i <o.length ; i++) {
System.out.print(o[i]+" ");
}
}
}
3、定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
public static void main(String[] args) {
int[] a={5,3,1,6,7,2};
int max=a[0];
int x=0;
for (int i = 1; i < a.length; i++) {
if (max<a[i]){
max=a[i];
x=i;
}
}
System.out.println("数组的最大值为"+"a["+x+"]="+max);
}
4、给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
public static void main(String[] args) {
int[] a={5,3,1,6,7,2};
int max1=a[0];
int max2=a[0];
int x=0;
int y=0;
for (int i = 1; i < a.length; i++) {
if (max1<a[i]){
max1=a[i];
x=i;
}
}
for (int i = 1; i < a.length; i++) {
if (max2<a[i]&&a[i]!=max1){
max2=a[i];
y=i;
}
}
// System.out.println("数组的最大值为"+"a["+x+"]="+max1);
System.out.println("数组的第二大值为"+"a["+y+"]="+max2);
}
5、B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
public static void main(String[] args) {
int[] a={5,3,8,6,7,2,9,6,7,8};
int max=a[0];
int min=a[0];
int sum=0;
double avg;
for (int i = 1; i < a.length; i++) {
if (max<a[i]){
max=a[i];
}else if (min>a[i]){
min=a[i];
}
sum+=a[i];
}
avg=(double) (sum+a[0]-max-min)/(a.length-2);
System.out.println("数组的最大值为"+max);
System.out.println("数组的最小值为"+min);
System.out.println("去掉一个最高分一个最低分后的平均分为:"+avg);
}
6、定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。
public static void main(String[] args) {
int[] a=new int[5];
int sum=a[4];
double avg=0;
for (int i = 0; i < 5; i++) {
Scanner sr=new Scanner(System.in);
a[i]=sr.nextInt();
}
//需要遍历a.length-1遍
for (int i = 0; i < a.length-1; i++) {
//每遍需要比较a.length-1-i次
for (int j =i+1; j < a.length; j++) {
if (a[i]<a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
System.out.print("五位同学的成绩从小到大排序为:");
for (int i = 0; i <a.length; i++) {
sum+=a[i];
System.out.print(a[i]+" ");
}
avg=(double)sum/a.length;
System.out.println();
System.out.println("五位同学的成绩之和为:"+sum);
System.out.println("五位同学的平均成绩为:"+avg);
System.out.println("五位同学的最大成绩为:"+a[0]);
System.out.println("五位同学的最小成绩为:"+a[4]);
}
7、提取一个方法,将指定数组中的数组元素进行反转
例如:{10,23,2,45,6}—>{6,45,2,23,10}
public static void main(String[] args) {
int[] a = {10, 23, 2, 45, 6,9};
System.out.println("原数组为:");
for (int x:a){
System.out.print(x+" ");
}
for (int i = 0; i < a.length / 2; i++) {
int temp = a[i];
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
System.out.println();
System.out.println("反转后数组为:");
for (int x:a){
System.out.print(x+" ");
}
}
8、现在有如下的一个数组:
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;
public static void main(String[] args) {
int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
int[] newArr = new int[12];
int n=-1;
System.out.println("原数组为:");
for (int x:oldArr){
System.out.print(x+" ");
}
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i]!=0){
n++;
newArr[n]=oldArr[i];
}
}
System.out.println();
System.out.println("去掉0后的新数组为:");
for (int x:newArr){
System.out.print(x+" ");
}
}
9、现在给出两个数组:
数组a:“1,7,9,11,13,15,17,19”
数组b:“2,4,6,8,10”
两个数组合并为数组c。
public static void main(String[] args) {
int[] a={1,7,9,11,13,15,17,19};
int[] b={2,4,6,8,10};
int[] c=new int[a.length+b.length];
//方法一:
System.arraycopy(a,0,c,0,a.length);
System.arraycopy(b,0,c,a.length,b.length);
System.out.println(Arrays.toString(c));
//方法二:
/*int n=-1;
int m=-1;
for (int i = 0; i <a.length+b.length ; i++) {
n++;
if (i<a.length){
c[n]=a[i];
}else {
m++;
c[n]=b[m];
}
}
System.out.println("a数组为:");
for (int x:a){
System.out.print(x+" ");
}
System.out.println();
System.out.println("b数组为:");
for (int y:b){
System.out.print(y+" ");
}
System.out.println();
System.out.println("a和b数组合并之后为:");
for (int z:c){
System.out.print(z+" ");
}*/
}
10、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字。
public static void main(String[] args) {
int[] array1={1,2,3,4,13,5,6,7,8,9};
int[] array2={9,8,1,2,3,4,6,7,9};
System.out.println("在第一个数组array1中出现,而在第二个数组array2中没有出现的数字有:");
outo: for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array2.length+1; j++) {
if(j<array2.length){
if (array1[i]!=array2[j]){
continue;
}else {
break;
}
}else {
System.out.print(array1[i]+" ");
// break outo;
}
}
}
}