同时求最大最小
怎样编程,从5个数中取最大和最小,求指教。。。。。。。。。
[解决办法]
冒泡排序过后,去头尾元素啊。
[解决办法]
#include <stdio.h>
void main()
{
int i,j;
int temp=0;
int a[5]={3,5,2,6,4};
for(j=0;j<4;j++){
for(i=0;i<4;i++){
if(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
printf("最大值:%d\n最小值:%d\n",a[4],a[0]);
}
#include <stdio.h>
#define COUNT(5)
int main(int argc, char* argv[])
{
int a[COUNT] = {12, 8, 9, 20, 10};
int min, max;
int i;
max = min = a[0];
for(i = 1; i < COUNT; i++)
{
if(min > a[i])
min = a[i];
if(max < a[i])
max = a[i];
}
printf("min=%d, max=%d\n", min, max);
return 0;
}
#include "stdio.h"
void main()
{
int i,j,tem,k,a[10];
int max,min;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
printf("a[%d]=%d\n",i,a[i]);
}
for(i=0;i<=9;i++)
{
for(j=0;j<10-i;j++)
{
if(a[j]>a[j+1])
{
tem=a[j];
a[j]=a[j+1];
a[j+1]=tem;
}
}
}
printf("after sorted \n");
for(i=1;i<=10;i++)
printf("%d ",a[i]);
min=a[1];
max=a[10];
printf("\n");
printf("最小值%d",a[1]);
printf("最大值%d",a[10]);
}
void FindMinMax(int A[],int size,int &min,int &max)
{
max=-INF;
min=INF;
for(int i=0;i<size-1;i++)
{
if(A[i]<A[i+1])
{
if(A[i+1]>max)
max=A[i+1];
if(A[i]<min)
min=A[i];
}
else
{
if(A[i]>max)
max=A[i];
if(A[i+1]<min)
min=A[i+1];
}
}
}
轻松解决
int main()
{
using namespace std;
boost::tuple<int const&, int const&> result1 = boost::minmax(1, 0);
assert( result1.get<0>() == 0 );
assert( result1.get<1>() == 1 );
list<int> L;
generate_n(front_inserter(L), 1000, rand);
typedef list<int>::const_iterator iterator;
pair< iterator, iterator > result2 = boost::minmax_element(L.begin(), L.end());
cout << "The smallest element is " << *(result2.first) << endl;
cout << "The largest element is " << *(result2.second) << endl;
assert( result2.first == std::min_element(L.begin(), L.end());
assert( result2.second == std::max_element(L.begin(), L.end());
}