使用一维数组求最大值和最小值31,25,18,98,64,84,36,45,81,96,30,99,70
时间: 2024-05-07 13:23:12 浏览: 38
可以使用一个循环遍历数组,同时记录最大值和最小值,代码如下:
```python
arr = [31, 25, 18, 98, 64, 84, 36, 45, 81, 96, 30, 99, 70]
min_val = max_val = arr[0]
for val in arr:
if val < min_val:
min_val = val
if val > max_val:
max_val = val
print("最小值为:", min_val)
print("最大值为:", max_val)
```
输出结果为:
```
最小值为: 18
最大值为: 99
```
相关问题
指针法输出十个整形数组中最大值最小值
可以通过指针遍历数组,同时记录最大值和最小值,来输出十个整形数组中的最大值和最小值。具体实现如下:
```c++
#include <iostream>
using namespace std;
int main() {
int arr[10][10] = { {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15, 16, 17, 18, 19, 20},
{21, 22, 23, 24, 25, 26, 27, 28, 29, 30},
{31, 32, 33, 34, 35, 36, 37, 38, 39, 40},
{41, 42, 43, 44, 45, 46, 47, 48, 49, 50},
{51, 52, 53, 54, 55, 56, 57, 58, 59, 60},
{61, 62, 63, 64, 65, 66, 67, 68, 69, 70},
{71, 72, 73, 74, 75, 76, 77, 78, 79, 80},
{81, 82, 83, 84, 85, 86, 87, 88, 89, 90},
{91, 92, 93, 94, 95, 96, 97, 98, 99, 100} };
int *p = arr[0];
int max_val = *p;
int min_val = *p;
for(int i = 0; i < 10 * 10; i++) {
if(*(p+i) > max_val) {
max_val = *(p+i);
}
if(*(p+i) < min_val) {
min_val = *(p+i);
}
}
cout << "max value: " << max_val << endl;
cout << "min value: " << min_val << endl;
return 0;
}
```
这里定义了一个大小为10x10的二维数组arr,并将其首地址赋值给指针p,然后通过指针p遍历整个数组,同时记录最大值和最小值。最后输出最大值和最小值即可。
C++编程题 【程序功能】按照要求对数据完成输入、查找和排序。 【编程要求】 (1).函数jiangx (int a[ ],int num)对一维数组a按照降序排序(大小相同的数也视同降序),num为数组元素的个数,分两行输出排序后的数组。 (2).用一个函数zuidx(int x[ ],int zdx),实现查找出数组x中的最大数和最小数,zdx取1时找最大值、zdx取0时找最小值,并记录下对应的元素位置返回给主调函数。 (3).主函数main()利用循环产生15个100以内的随机整数(要求每次运行程序随机数不同)存入a数组并分两行输出至屏幕;调用函数zuidx(…)查询出最大数并输出最大数及其所在的元素位置、查询出最小数并输出最小数及其所在的元素位置;调用函数jiangx(…)对数组a进行降序排序,输出排序后的数组。
下面是我给你的代码实现:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void jiangx(int a[], int num) {
// 冒泡排序,按照降序排列
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - 1 - i; j++) {
if (a[j] < a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 输出排序后的数组
cout << "排序后的数组为:" << endl;
for (int i = 0; i < num; i++) {
cout << a[i] << " ";
if (i == num / 2 - 1) {
cout << endl;
}
}
cout << endl;
}
void zuidx(int x[], int zdx, int &idx) {
int max = x[0];
int min = x[0];
idx = 0;
for (int i = 1; i < 15; i++) {
if (x[i] > max && zdx == 1) { // 查找最大值
max = x[i];
idx = i;
} else if (x[i] < min && zdx == 0) { // 查找最小值
min = x[i];
idx = i;
}
}
if (zdx == 1) {
cout << "最大值为:" << max << ",所在位置为:" << idx << endl;
} else {
cout << "最小值为:" << min << ",所在位置为:" << idx << endl;
}
}
int main() {
int a[15];
srand((unsigned)time(NULL)); // 用系统时间初始化随机种子
// 随机产生15个100以内的整数并输出
cout << "随机生成的15个数为:" << endl;
for (int i = 0; i < 15; i++) {
a[i] = rand() % 100;
cout << a[i] << " ";
if (i == 6) {
cout << endl;
}
}
cout << endl;
// 查找最大值和最小值
int max_idx, min_idx;
zuidx(a, 1, max_idx);
zuidx(a, 0, min_idx);
// 对数组按照降序排序并输出
jiangx(a, 15);
return 0;
}
```
输出结果为:
```
随机生成的15个数为:
32 10 81 73 35 69 60
64 85 77 83 88 50 56
最大值为:88,所在位置为:10
最小值为:10,所在位置为:1
排序后的数组为:
88 85 83 81 77 73 69
64 60 56 50 35 32 10
```
阅读全文