C ++如何在n个元素的一维数组中找到最小值和最大值?
C++ How to find min and max values in a one-dimensional array of n elements?
Write a program that asks a user to input an integer n. The program should prompt the user to input n integers and store them in a one-dimensional array. Then the program should output the minimum and maximum elements in the array.
int main()
{
int n,a,b;
cin>>n;
int ma=0,mi=0;
int num[n];
cin>>num[0];
for(int i=1;i<n;i++)
{
cin>>num[i];
a=num[i];
b=num[i-1];
if(a>b)
ma=a;
if(a<b)
mi=a;
}
cout<<mi<<endl;
cout<<ma;
}
当给定元素时,它没有正确显示最小值和最大值。我的错误在哪里?
您错过了算法中的第一个值永远不会设置为最小值或最大值。
假设所有数字都是正数
int main()
{
int n;
cin>>n;
int ma=0,mi=2147483647;
int num[n];
for(int i=0;i<n;i++)
{
cin>>num[i];
if(num[i] > ma)
ma = num[i];
if(num[i] < mi)
mi = num[i];
}
cout<<mi<<endl;
cout<<ma;
}
我会尝试以下代码:
std ::vector < int > v (n);
std ::copy_n (std ::istream_iterator < int, char > (cin), begin (v), n);
auto const r ((std ::minmax_element) (begin (v), end (v)));
return std ::cout << * r .first << '\n' << * r .second ? EXIT_SUCCESS: EXIT_FAILURE;
Write a program that asks a user to input an integer n. The program should prompt the user to input n integers and store them in a one-dimensional array. Then the program should output the minimum and maximum elements in the array.
int main()
{
int n,a,b;
cin>>n;
int ma=0,mi=0;
int num[n];
cin>>num[0];
for(int i=1;i<n;i++)
{
cin>>num[i];
a=num[i];
b=num[i-1];
if(a>b)
ma=a;
if(a<b)
mi=a;
}
cout<<mi<<endl;
cout<<ma;
}
当给定元素时,它没有正确显示最小值和最大值。我的错误在哪里?
您错过了算法中的第一个值永远不会设置为最小值或最大值。 假设所有数字都是正数
int main()
{
int n;
cin>>n;
int ma=0,mi=2147483647;
int num[n];
for(int i=0;i<n;i++)
{
cin>>num[i];
if(num[i] > ma)
ma = num[i];
if(num[i] < mi)
mi = num[i];
}
cout<<mi<<endl;
cout<<ma;
}
我会尝试以下代码:
std ::vector < int > v (n);
std ::copy_n (std ::istream_iterator < int, char > (cin), begin (v), n);
auto const r ((std ::minmax_element) (begin (v), end (v)));
return std ::cout << * r .first << '\n' << * r .second ? EXIT_SUCCESS: EXIT_FAILURE;