我写了一个小程序来查找数组中最小的元素。即使有更短的方法,我也必须使用类似的格式。我似乎找不到代码有问题。测试如下:-
测试最小:
数组:
您的答案= 2147483647
----通过----
数组:0 -1 5
您的答案= -1
----通过----
数组:-1 0 3 -10 3 100
您的答案= 100
----失败----
数组:0 0
您的答案= 0
----通过----
数组:
您的答案= 2147483647
----通过----
int smallest(int elements[], int size) {
int i;
int temp1 = 0;
int temp2 = elements[0];
if (size <= 0)
{
return INT_MAX;
}
else
{
for (i = 0; i<size; i++)
{
if (elements[i] < temp1)
{
elements[i-1] = elements[i];
temp2 = elements[i];
elements[i] = temp1;
temp1 = temp2;
}
else
temp1 = elements[i];
}
return temp1;
}
}
答案 0 :(得分:5)
您需要记住当前的最小值(可以开始等于数组的第一个元素),然后循环遍历数组。如果当前元素小于当前最小值,则更改当前最小值的值。
...
int min = elements[0];
int i;
for (i = 1; i < size; ++i)
if (elements[i] < min)
min = elements[i];
...