寻找数组中最大值
问题描述
对于给定整数数组a[],寻找其中最大值,并返回下标。
输入格式
整数数组a[],数组元素个数小于等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。
输出格式
输出最大值,及其下标
样例输入
3
3 2 1
样例输出
3 0
删除数组零元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素, 其后元素向数组首端移动。
注意,CompactIntegers函数需要接受数组及其元素个数作为参数,
函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。 样例输入: (输入格式说明:5为输入数据的个数,3 4 0
0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数) 3 3
4 2 样例输入: 7 0 0 7 0 0 9 0 样例输出: 2 7 9
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();// 数组长度
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
int[] b = CompactIntegers(a, n);
System.out.println(b.length);
for (int i : b) {
System.out.print(i + " ");
}
}
public static int[] CompactIntegers(int a[], int n) {
//如果数值等于0 数组长度--
for (int i = 0; i < a.length; i++) {
if (a[i] == 0) {
n--;
}
}
//创建一个新数组 接收不为0的数组元素 并返回
int[] temp = new int[n];
int count = 0;// 下标
for (int i = 0; i < a.length; i++) {
if (a[i] != 0) {
temp[count] = a[i];
count++;
}
}
return temp;
}
求数组中绝对值最大的元素、及下标
输入一个3行4列的数组,找出该数组中绝对值最大的元素、
输出该元素及其两个下标值。如有多个输出行号最小的,还有多个的话输出列号最小的。
样例输入
1 2 3 5
-2 5 8 9
6 -7 5 3
样例输出
9 2 4
查找整数a在数列中的第一次出现的位置
问题描述:
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
数组去重
问题描述
输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。
输入格式
10个整数。
输出格式
多行输出,每行一个元素。
样例输入
2 2 3 3 1 1 5 5 5 5
样例输出
1
2
3
5
Scanner sc=new Scanner(System.in);
int[] arr=new int[10];
//输入10个整数组成的序列
for(int i=0;i<arr.length;i++) {
arr[i]=sc.nextInt();
}
//排序 去重
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//先输出第一个
System.out.println(arr[0]);
//当前项与前一个对比 如果不一样打印输出
for (int i =1;i<arr.length;i++) {
if(arr[i]!=arr[i-1]) {
System.out.println(arr[i]);
}
}