零基础学c语言之比较数

  我们通常会遇到比较几个数的大小的问题。具体来说是比较大小后将两个数交换,但是有人通过if(a>b)[printf("%d",a)} else {printf("%d",b)}的方式避开来数字交换的步骤,但那不是适合于比较多个数,在c语言中我们通常用比较后交换数值来将数字按大小排序。交换就像将两个杯子里的不同液体交换,需要哪一个空杯子来装第一杯液体,然后将第二杯液体倒在第一个空杯子中,再将取来的杯子中的液体倒在第二杯中。这样这两个杯子中的液体就相互交换了。一个简单的代码说明。

#include<stdio.h>
int main()
{
  int a,b,t;
  printf("输入两个数,它们将从小的大排列:");
  scanf("%d,%d",&a,&b);
    if(a>b){
    t=a;
    a=b;
    b=t;
    }
  printf("%d,%d\n",a,b);
  return 0;
}

也可以将关系符换一下求从大到小的数,主要是弄请引入的变量t的意义。再来一个列子比较三个数的大小,并输出。

  • #include<stdio.h>
  • int main()
  • {
  • int a,b,c,t;
  • printf("请输入3个整数");
  • printf("它们将会从小到大输出:");
  • scanf("%d,%d,%d",&a,&b,&c);
  • if(a>b){
  • t=a;
  • a=b;
  • b=t;
  • }
  • if(a>c)
  • {
  • t=a;
  • a=c;
  • c=t;
  • }
  • if(b>c)
  • {
  • t=b;
  • b=c;
  • c=t;
  • }
  • printf("a=%d,b=%d,c=%d",a,b,c);
  • return 0;
  • }

也可以通过if_else形式

#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入3个整数");
printf("将输出最大数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a<b){
if(b<c)
printf("max=%d\n",c);
else{
printf("max=%d\n",b);
}
}
else{
if(a<c){
printf("max=%d",c);
}
else{
printf("max=%d",a);
}
}
return 0;
}

或是三目运算符的方式

#include<stdio.h>
int main()
{
int a,b,c,temp,max;
printf("请输入3个整数");
printf("将输出最大数:");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("3个整数的最大数是%d\n",max);
return 0;
}

通过多种的比较发散的思维看待问题将更加的清晰明白。相同的求四个数的最大值也差不多。

#include<stdio.h>
int main()
{
int t,a,b,c,d;
printf("输入4个整数,它们将从小的大输出:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(a>d){
t=a;
a=d;
d=t;
}
if(b>c){
t=b;
b=c;
b=t;
}
if(b>d){
t=b;
b=d;
d=t;
}
if(c>d){
t=c;
c=d;
d=t;
}
printf("排列顺序如下:\n");
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}

      也可以用三目运算符来求最值,具体情况根据需求。

#include<stdio.h>
int main()
{
int a,b,c,d,temp,max,end;
printf("请输入4个整数");
printf("它们将输出最大值:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
end=(max>d)?max:d;
printf("最大的数是%d\n",end);
return 0;
}

如果还想求更多的数,那用目前的方法肯定是不行的,这就需要算法来帮忙了。

猜你喜欢

转载自www.cnblogs.com/Goerage/p/9479017.html