题目描述
【问题描述】依次输入一个整形数组的元素值,然后求该数组前n个元素的最小值及其下标。例如,数组前5个元素为{12,23,8,76,10},该数组的最小值是8,下标是2。
提示:
(1)定义一个数组,数组大小不超过999,为该数组赋值。
(2)在循环中通过比较得到数组的最小值,并把最小值的下标保存下来。
【输入形式】第一行输入数组的前n个元素个数,第二行输入依次输入元素值,用空格分开
【输出形式】第一行数组元素的最小值,第二行最小值元素的下标
【样例输入】
5
12#23#8#76#10
(#表示空格)
【输出形式】
8
2
解题思路
先定义一个变量假设数组第一个值最大,然后从下标1开始遍历(因为数组下标从一开始,而最大值变量已赋值),依次比较改变最大值变量然后用一个变量记录下标即可~
源代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
int num[1000], n;
scanf("%d", &n);
int i;
for (i = 0; i < n; i++)
scanf("%d", &num[i]);
int index = 0, min = num[0];
for (i = 1; i < n; i++) {
if (num[i] < min) {
min = num[i];
index = i;
}
}
printf("%d\n%d", min, index);
return 0;
}
总结
相对基础的题,一次遍历思想~