要求:输入数组长度n,并输入n个数,统计数组中的谷值个数。(一个数若小于相邻的数则称为数组的谷值,若没有相邻的值也算谷值)
(我真的不理解要怎么下手,(ㄒoㄒ) )
谢谢有缘人来回答(^ω^)
①输入数组长度n,并输入n个数
②两层for循环 遍历数组 比较a[i]与a[i-1]和a[i+1]的如果小于任何一个就统计+1
第一个和最后一个做特殊处理,只需比较后一个和前一个就可以了。
③输出统计的谷值个数
希望对题主有所帮助!可以的话,帮忙点个采纳!
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入n
int n = scanner.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
//输入n个数
a[i] = scanner.nextInt();
}
//谷值个数
int sum = 0;
for (int i = 0; i < n; i++) {
if (n == 1) {
//只有一个值,谷值个数为1
sum++;
} else if (i == 0) {
//第一个只需和后面的比较
if (a[i] < a[i + 1]) {
sum++;
//这里出现谷值的话,下一个点就不可能是谷值,可以直接跳过
i++;
}
} else if (i == n - 1) {
//最后一个只需和前面的比较
if (a[i] < a[i - 1]) {
sum++;
//因为已经到了最后一个,直接写不写 i++; 都无所谓
}
} else {
if (a[i] < a[i - 1] && a[i] < a[i + 1]) {
sum++;
//这里出现谷值的话,下一个点就不可能是谷值,可以直接跳过
i++;
}
}
}
System.out.println("谷值个数为" + sum);
}
}
让余xj讲呗
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int length = input.nextInt();
int[] nums = new int[length];
for (int i = 0; i < nums.length; i++) {
nums[i] = input.nextInt();
}
int num = 0; // 统计数量
for (int i = 0; i < nums.length-1; i++) {
if (i==0) { //第一位
if (nums[i]<nums[i+1]) {
num++;
}
} else if (i==nums.length) { //最后一位
if (nums[nums.length-1]<nums[nums.length-2]) {
num++;
}
} else {
if (nums[i]<nums[i-1]&&nums[i]<nums[i+1]) {
num++;
}
}
}
System.out.println(num);
}