编写一个函数,传入的参数是一个数组名和数组的元素个数,要求通过该函数返回数组中最小值的下标值。

2024-12-02 16:45:41
推荐回答(3个)
回答1:

void amin(double a[],int n,int min)
{
double temp=a[0];
for(int i=1;i {
if(temp>a[i])
{
temp=a[i];
min=i;
}
}
return min;
}
这样应该就是返回的 min 就是数组中最小值的下标值了

回答2:

如果是确定的类型,如int.如下
public int getMinIndex(int[] a)
{
int t=0;
int temp=a[0];
for(int i=0;i {
if(a[i] {
t=i;
temp=a[i];
}
}
return t;
}
注:传过来数组引用,就可以通过a.length得到数组个数,只传个数组引用就可以了,不需要传元素个数

如果类型不确定,可以用泛型方法
public > int getMinIndex(T[] a)
{
int t=0;
T temp=a[0];
for(int i=0;i {
if(a[i].compareTo(temp)==-1)
{
t=i;
temp=a[i];
}
}
return t;
}
只要是实现了Comparable接口的类的数组都可以,基本数据类型,要自己先封包
例子:
class eee
{
public static > int getMinIndex(T[] a)
{
int t=0;
T temp=a[0];
for(int i=0;i {
if(a[i].compareTo(temp)==-1)
{
t=i;
temp=a[i];
}
}
return t;
}
public static void main(String args[])
{
Integer[] a={8,2,3,4,3,3,};
int t=eee.getMinIndex(a);
System.out.println(t);
}
}

回答3:

int Min(int a[],int size)
{
int temp = 0;
for (int i = 1;i < size;i++)
if (a[i] < a[temp])
temp = i;
return temp;
}