ZZULIOJ题解
1115: 数组最小值
题目描述
数组a有n个元素,请输出n个元素的最小值及其下标。若最小值有多个,请输出下标最小的一个。注意,有效下标从0开始。
输入
输入分两行,第一行是一个正整数n(n<=1000),第二行是n个整数。
输出
输出占一行。输出数组的最小值及其下标,用空格隔开。
样例输入
5
8 4 5 1 2
样例输出
1 3
先让最小值最大,然后设立个记录下标的数字,每次碰到比最小值更小的值,更新最小值和下标值。
代码
#include<stdio.h>
#include<limits.h>//limits头文件里面有INT_MAX
#define N 1001
int a[N];//宏定义了N,并且把数组开为a[N]
int min=INT_MAX,b;//定义最小值并初始化为整型的最大值 ,以及最小元素的下标b(biao) 啊哈哈哈
int main()
{
int i,n;//定义循环变量i,数组元素数n
scanf("%d",&n);//键盘输入n
for(i=0;i<n;i++)//循环输入数组a的值
scanf("%d",&a[i]);
for(i=0;i<n;i++)//从0开始遍历
if(min>a[i]) {b=i;min=a[i];}//遇到比min小的值,更新min和下标
printf("%d %d",min,b);//输出最小值和最小值的下标
return 0;// 程序正常结束
}