c语言编程一个20元素的一维数组,数组元素为【10,99】中的任意自然数,找出其中最大值和最小值及其位置。
时间: 2024-05-02 15:20:43 浏览: 14
好的,这是一个关于C语言编程的问题。以下是解决该问题的代码:
```
#include <stdio.h>
int main()
{
int arr[20] = {10, 99, 15, 23, 8, 45, 67, 22, 39, 11, 77, 56, 18, 31, 94, 25, 68, 13, 90, 35};
int max = arr[0], min = arr[0];
int maxIndex = 0, minIndex = 0;
for(int i = 0; i < 20; i++)
{
if(arr[i] > max)
{
max = arr[i];
maxIndex = i;
}
if(arr[i] < min)
{
min = arr[i];
minIndex = i;
}
}
printf("最大值为 %d,位置为 %d\n", max, maxIndex);
printf("最小值为 %d,位置为 %d\n", min, minIndex);
return 0;
}
```
输出为:
```
最大值为 99,位置为 1
最小值为 8,位置为 4
```
相关问题
c语言 有一个20元素的一维数组,数组元素为【10,99】中的任意自然数,找出其中最大值和最小值及其位置。
好的,这是一道关于C语言数组操作的问题。最大值和最小值可以通过遍历数组进行比较得出,而位置可以通过记录每个元素的索引得到。以下是一个可能的解答:
```c
#include <stdio.h>
#define N 20
int main() {
int arr[N] = {10, 99, 6, 28, 74, 31, 78, 82, 45, 50, 23, 61, 37, 72, 57, 3, 66, 59, 92, 16};
int max = arr[0], min = arr[0], index_max = 0, index_min = 0;
for (int i = 1; i < N; i++) {
if (arr[i] > max) {
max = arr[i];
index_max = i;
}
if (arr[i] < min) {
min = arr[i];
index_min = i;
}
}
printf("Max: %d, index: %d\n", max, index_max);
printf("Min: %d, index: %d\n", min, index_min);
return 0;
}
```
程序中的 arr 数组对应题目中的“20元素的一维数组”,其他部分则按照题目要求进行处理。
用C语言编程求出含有10个元素的一维数组中的最大值和次最大值
你好,这是一个编程问题,属于我的能力范围。解决这个问题的方法是使用C语言编写一个函数,输入一个含有10个元素的一维数组,函数返回该数组中的最大元素和次大元素。
下面是代码示例:
```c
#include <stdio.h>
void findMaxTwo(int arr[], int size, int* max, int* secondMax) {
*max = arr[0];
*secondMax = arr[1];
for(int i = 2; i < size; i++) {
if(arr[i] > *max) {
*secondMax = *max;
*max = arr[i];
} else if(arr[i] > *secondMax) {
*secondMax = arr[i];
}
}
}
int main() {
int arr[10] = {1, 5, 3, 9, 7, 2, 8, 4, 6, 0};
int max, secondMax;
findMaxTwo(arr, 10, &max, &secondMax);
printf("Max: %d, Second Max: %d", max, secondMax);
return 0;
}
```
运行结果:
```
Max: 9, Second Max: 8
```
希望能够帮助到您!