我應該在數組中找到最小值和最大值,但我似乎無法弄清楚爲什麼答案不正確。例如,如果我輸入「1 2 3 4 5」作爲我的五次,它告訴我1是我的最大值,0是最小值。出於某種原因,無論第一個數字是多少,它都會將其稱爲最大值,並將最小值指定爲0。查找五次數組中的最大值和最小值
#include <iostream>
using namespace std;
int find_distance(int j); //a function that returns a distance based on the choice j
int intmax, intmin;
int main()
{
int i =0;
int distance[6];
double data[6][5];
for(int j = 0; j < 6; j++)
{
distance[j] = find_distance(j);
cout << "\nEnter 5 of your best running times for \n " << distance[j] << " m \n";
for(int i = 0; i < 5; i++)
{
cout << "Enter a time \n"; cin >> data[j][i];
}
}
cout << "Here is your best 5 times: ";
for(int j = 0; j < 6; j++)
{
cout << "\nDistance : " << distance[j] << " m \n";
for(int i = 0; i < 5; i++)
{
system ("pause");
cout << data[j][i] << "\t"; } cout << endl;
if (data[j][i] < intmin)
intmin = data[j][i];
else if (data[j][i] > intmax)
intmax = data[j][i];
cout << "The maximum time is: " << intmax << endl;
cout << "The minimum time is: "<< intmin << endl;
}
return 0;
}
int find_distance(int j)
{
switch (j)
{ case 0: // 100 meter
return 100;
break;
case 1: // 150 meter
return 150;
break;
case 2: // 200 meter
return 200;
break;
case 3: // 400 meter
return 400;
break;
case 4: // 500 meter
return 800;
break;
default: // 1600 meter
return 1600;
}
}
你爲什麼不排序值並找到第一個和最後一個元素? – nitinsh99
@ nitinsh99因爲這會使它O(log n)而不是O(n)?可能在很短陣列的情況下,這並不重要,但是我在這裏感覺到了作業,並且可能OP應該提供比給定的更通用的解決方案。 – 2013-11-01 07:16:34
[在數組中找到最大和最小數字]的可能重複(http://stackoverflow.com/questions/16298906/find-largest-and-smallest-number-in-an-array) – Torben