c语言练习--三个数比较

要求:实现三个数的比较 从大到小和从小到大排列

普通做法一:

#include<stdio.h>
int main()
{
    int a,b,c,sum;
    printf("让三个数排列大小\n");
    printf("请输入第一个数\n");
    scanf("%d",&a); 
    printf("请输入第二个数\n");
    scanf("%d",&b);  
    printf("请输入第三个数\n");
    scanf("%d",&c); 
    if(a>b) //把a的值赋给b,b的值赋给a
           //sum起到中间变量
    {       //大赋给小,小赋给大
            //所以这里b>a
      sum=a;
      a=b;    
      b=sum;     
    }
    if(a>c)    //到这里后b的值是最大的              
    {          
      sum=a;   
      a=c;   
      c=sum;      //这里c>a
                  //所以:a<c<b
    }
    if(b>c)   
    {
      sum=b;  //b把值赋给sum
      b=c;    //c把值赋给b
      c=sum;  //sum把值赋给c  
              //所以c最大
              //a<b<c                      
    }
    printf("三个数从小到大排列为:");
    printf("%d < %d < %d\n",a,b,c);
    printf("三个数从大到小排列为:");
    printf("%d > %d > %d\n",c,b,a);   
   return 0;
}

做法二函数实现:(虽然和普通做法一样,但是要注意!!)

注意:再自己设函数时,因为要改变形参对实参的值,所以要用到传址调用,既要通过指针实现

#include<stdio.h>
void pali(int* num1, int* num2, int* num3)
{
	int tmp;
	if (*num1> *num2)
	{
		tmp = *num1;
		*num1 = *num2;
		*num2 = tmp;
	}
	if (*num1> *num3)
	{
		tmp = *num1;
		*num1 = *num3;
		*num3 = tmp;
	}
	if (*num2> *num3)
	{
		tmp = *num2;
		*num2 = *num3;
		*num3= tmp;
	}
}
int main()
{
	int num1, num2, num3;
	printf("请输入三个数\n");
	scanf("%d %d %d", &num1, &num2,&num3);
	pali(&num1, &num2, &num3);
	printf("从大到小排列为:%d>%d>%d",num3,num2,num1);
	printf("从小到大排列为:%d<%d<%d", num1, num2,num3);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值