找到数组中非零最大值和最小值
时间: 2023-08-09 11:11:26 浏览: 267
你可以使用以下 Python 代码来找到数组中非零最大值和最小值:
```python
import numpy as np
arr = np.array([0, 2, 3, 0, 5, 0, 7, 0])
nonzero_arr = arr[arr != 0] # 取出非零值
if len(nonzero_arr) > 0:
max_val = np.max(nonzero_arr) # 取出最大值
min_val = np.min(nonzero_arr) # 取出最小值
print(f"非零最大值:{max_val}, 非零最小值:{min_val}")
else:
print("数组中没有非零值")
```
解释:
1. 使用 NumPy 库创建一个数组 `arr`,其中包含一些非零值和零值。
2. 使用 NumPy 库的布尔索引,取出非零值构成一个新的数组 `nonzero_arr`。
3. 如果 `nonzero_arr` 中存在值,使用 NumPy 库的 `max` 和 `min` 函数分别取出最大值和最小值。
4. 如果 `nonzero_arr` 中不存在值,则输出提示信息。
注意:在运行代码之前,需要先安装 NumPy 库。
相关问题
C#找到数组中非零最大值和最小值
你可以使用以下 C# 代码来找到数组中非零最大值和最小值:
```csharp
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int[] arr = { 0, 2, 3, 0, 5, 0, 7, 0 };
int[] nonzero_arr = arr.Where(x => x != 0).ToArray(); // 取出非零值
if (nonzero_arr.Length > 0)
{
int max_val = nonzero_arr.Max(); // 取出最大值
int min_val = nonzero_arr.Min(); // 取出最小值
Console.WriteLine($"非零最大值:{max_val}, 非零最小值:{min_val}");
}
else
{
Console.WriteLine("数组中没有非零值");
}
}
}
```
解释:
1. 声明一个整型数组 `arr`,其中包含一些非零值和零值。
2. 使用 LINQ 的 `Where` 函数,取出非零值构成一个新的数组 `nonzero_arr`。
3. 如果 `nonzero_arr` 中存在值,使用 LINQ 的 `Max` 和 `Min` 函数分别取出最大值和最小值。
4. 如果 `nonzero_arr` 中不存在值,则输出提示信息。
注意:在运行代码之前,需要先引入 System.Linq 命名空间。
键盘输入数组的长度 创建一个整型元素的数组 键盘输入数组的每一个元素 数组的遍历显示、 统计数组中非零元素个数、 数组元素求和、 数组元素求平均值、 数组元素求最大值、最小值、 数组元素的反转
好的,我来一步一步回答你的问题。
1. 键盘输入数组的长度
你可以使用 `Scanner` 类来实现从键盘输入数组的长度,示例代码如下:
```
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组的长度:");
int length = scanner.nextInt();
```
2. 创建一个整型元素的数组
根据输入的数组长度,可以创建一个整型元素的数组,示例代码如下:
```
int[] array = new int[length];
```
3. 键盘输入数组的每一个元素
使用 `for` 循环结合 `Scanner` 类,可以实现从键盘输入数组的每一个元素,示例代码如下:
```
for (int i = 0; i < length; i++) {
System.out.print("请输入第 " + (i+1) + " 个元素:");
array[i] = scanner.nextInt();
}
```
4. 数组的遍历显示
使用 `for` 循环可以遍历数组的每一个元素,并将其显示出来,示例代码如下:
```
System.out.println("数组元素为:");
for (int i = 0; i < length; i++) {
System.out.print(array[i] + " ");
}
```
5. 统计数组中非零元素个数
使用 `for` 循环遍历数组的每一个元素,如果元素不为零,则计数器加一,最后输出计数器的值即为数组中非零元素的个数,示例代码如下:
```
int count = 0;
for (int i = 0; i < length; i++) {
if (array[i] != 0) {
count++;
}
}
System.out.println("数组中非零元素个数为:" + count);
```
6. 数组元素求和
使用 `for` 循环遍历数组的每一个元素,累加每一个元素的值,最后输出累加器的值即为数组元素的求和结果,示例代码如下:
```
int sum = 0;
for (int i = 0; i < length; i++) {
sum += array[i];
}
System.out.println("数组元素的求和为:" + sum);
```
7. 数组元素求平均值
使用数组元素的求和结果除以数组的长度即可得到数组元素的平均值,示例代码如下:
```
double average = (double) sum / length;
System.out.println("数组元素的平均值为:" + average);
```
8. 数组元素求最大值、最小值
使用 `for` 循环遍历数组的每一个元素,依次比较每一个元素和一个变量的值,将较大或较小的值赋给这个变量,最后输出这个变量的值即为数组元素的最大值或最小值,示例代码如下:
```
int max = array[0];
int min = array[0];
for (int i = 1; i < length; i++) {
if (array[i] > max) {
max = array[i];
}
if (array[i] < min) {
min = array[i];
}
}
System.out.println("数组元素的最大值为:" + max);
System.out.println("数组元素的最小值为:" + min);
```
9. 数组元素的反转
使用 `for` 循环遍历数组的前一半元素,将每一个元素和对应的后一半元素进行交换,最后输出交换后的数组即可,示例代码如下:
```
for (int i = 0; i < length / 2; i++) {
int temp = array[i];
array[i] = array[length - i - 1];
array[length - i - 1] = temp;
}
System.out.println("反转后的数组为:");
for (int i = 0; i < length; i++) {
System.out.print(array[i] + " ");
}
```
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)