1.三目运算符:
void main()
{
float a,b,c,d;
float x,y,max,min;
scanf("%f%f%f%f",&a,&b,&c,&d);
x=a>b?a:b;
y=c>d?c:d;
max=x>y?x:y;
x=a<b?a:b;
y=c<d?c:d;
min=x<y?x:y;
printf("最大值为%.2f,最小值为%.2f\n",max,min);
}
2.顺序比较:
void fun(int *a, int *b, int *c, int *d)
{
int max,min;//临时存放最大值、最小值
max=min=*a;//初始化为*a
if(max<*b)//与*b比较,如果max比*b小,修改max,如果min比*b大,修改min,下同
max=*b;
if(min>*b)min=*b;
if(max<*c)max=*c;
if(min>*c)min=*c;
if(max<*d)max=*d;
if(min>*d)min=*d;
*d=min;
*a=max;
}
3.存入数组,利用循环比较
int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}
总结:
最值问题的两个思路:
1、定义一个数为最值,然后与其余的数进行比较然后比较,找出最值。
2、对所有的数进行排序,然后从排序好的数里面就可以找到最值。当然排序的方法有很多
最简单的就是利用C++的STL调用sort函数或者qsort进行排序。