C语言输出一维数组中最小的正整数元素及其下标。若最小值的正整数有多个,请输出下标最大的一个,如果没有找到,输出-1。
时间: 2024-05-06 15:20:37 浏览: 94
以下是一个示例代码:
```c
#include <stdio.h>
int main()
{
int a[] = {3, -2, 6, 0, 5, 1, 2};
int n = sizeof(a) / sizeof(a[0]);
int min = -1, index = -1;
for (int i = 0; i < n; i++) {
if (a[i] > 0 && (min == -1 || a[i] < min || (a[i] == min && i > index))) {
min = a[i];
index = i;
}
}
if (min == -1) {
printf("没有找到正整数元素\n");
} else {
printf("最小的正整数元素为 %d,下标为 %d\n", min, index);
}
return 0;
}
```
解释:
1. 定义一个一维数组a,同时计算数组的长度n;
2. 定义min和index变量,分别表示最小的正整数元素和其下标,初始值都为-1;
3. 使用循环遍历数组a,对于每个正整数元素,判断其是否小于当前的最小值min,或者是否等于当前的最小值min但下标更大index,如果是,则更新min和index;
4. 最后根据min的值是否为-1来判断是否找到了最小的正整数元素,如果找到了则输出其值和下标,否则输出提示信息。
相关问题
c语言输出一维数组中最大元素的下标
在 C 语言中,如果你想找出一维数组中最大元素的下标,你可以采用遍历数组的方式。下面是一个简单的示例:
```c
#include <stdio.h>
int findMaxIndex(int arr[], int size) {
// 初始化最大值和下标为0
int max = arr[0];
int max_index = 0;
// 遍历数组
for (int i = 1; i < size; i++) {
// 如果当前元素大于已知的最大值,则更新最大值和下标
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
return max_index;
}
int main() {
int array[] = {5, 10, 15, 20, 25};
int array_size = sizeof(array) / sizeof(array[0]);
int max_index = findMaxIndex(array, array_size);
printf("最大元素 %d 的下标是 %d\n", array[max_index], max_index);
return 0;
}
```
在这个例子中,`findMaxIndex` 函数接收一个整数数组和它的大小,然后通过循环查找并返回最大值对应的索引。在 `main` 函数里,我们创建了一个数组并调用该函数获取最大元素的下标。
编写程序,输出一维数组a中的元素最小值及其下标。
以下是C语言程序设计中输出一维数组a中的元素最小值及其下标的代码:
```c
#include <stdio.h>
int main() {
int a[10] = {9, 8, 7, 6, 1, 3, 5, 18, 2, 4};
int m = a[0], p = 0;
for (int i = 1; i < 10; i++) {
if (a[i] < m) {
m = a[i];
p = i;
}
}
printf("元素最小值为:%d,其下标为:%d\n", a[p], p);
return 0;
}
```
该程序首先定义了一个包含10个元素的一维数组a,并将第一个元素赋值给变量m,将下标0赋值给变量p。然后通过for循环遍历数组中的每一个元素,如果当前元素小于m,则将当前元素赋值给m,将当前下标赋值给p。最后输出最小值和其下标。
阅读全文