输入10个整数保存到数组中,我出最小值以及它的下标(并输出该最小值及下标) 注:如果有多个值同时为最小值则输出最小的下标
上面的最小值怎么求呀
边输入,边比较这 10个数,一个个比较就行了
参考如下:
#include <stdio.h>
int main ()
{
int a[10], i, minIndex = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
if (a[minIndex] > a[i])
minIndex = i;
}
printf("最小值为 %d, 它的下标为 %d", a[minIndex], minIndex);
return 0;
}
在代码中,我们首先定义了一个宏常量N,代表存储整数的数组的长度。接着使用一个循环,读取并保存输入中的整数,并记录最小值和下标。在每次输入过程中,判断新输入的元素是否比当前存储的最小值还要小,如果是,则更新最小值及其下标。最后输出最小值及其下标。需要注意的是,如果存在多个最小值,只输出最小的下标。
#include <stdio.h>
#define N 10 // 宏定义数组长度
int main() {
int arr[N];
int min = 0, idx = 0; // 初始化最小值和下标
printf("请输入%d个整数:\n", N);
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]); // 从输入中读取整数并保存到数组中
if (arr[i] < arr[min]) {
min = i; // 更新最小值下标
}
}
printf("最小值为%d,下标为%d\n", arr[min], min);
return 0;
}
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
10 个整数。
代码实现:
const int MaxSize = 10;
int main() { int arr[MaxSize]; int min = arr[0]; // 初始最小值为数组第一个元素 int min_index = 0; // 初始最小值下标为0
// 输入10个整数并保存到数组中
for (int i = 0; i < MaxSize; i++)
{
printf("请输入第%d个整数: ", i+1);
scanf("%d", &arr[i]);
// 更新最小值及其下标
if (arr[i] < min)
{
min = arr[i];
min_index = i;
}
}
// 输出最小值及其下标
printf("最小值为: %d, 下标为: %d\n", min, min_index);
return 0;
}
以上代码实现了输入10个整数并将其保存到一个数组中,然后找到数组中的最小值及其下标,并输出结果。
如果数组中存在多个最小值,我们只需要对每一个最小值都进行比较,找到最小值的最小下标即可。代码实现如下:
const int MaxSize = 10;
int main() { int arr[MaxSize]; int min = arr[0]; // 初始最小值为数组第一个元素 int min_index = 0; // 初始最小值下标为0
// 输入10个整数并保存到数组中
for (int i = 0; i < MaxSize; i++)
{
printf("请输入第%d个整数: ", i+1);
scanf("%d", &arr[i]);
// 更新最小值及其下标
if (arr[i] < min)
{
min = arr[i];
min_index = i;
}
}
// 找到所有最小值的最小下标
for (int i = 0; i < MaxSize; i++)
{
if (arr[i] == min && i < min_index)
{
min_index = i;
}
}
// 输出最小值及其下标
printf("最小值为: %d, 最小下标为: %d\n", min, min_index);
return 0;
}
以上代码实现了找到数组中的最小值及其最小下标,如果数组中存在多个最小值,则输出最小值的最小下标。