C语言:排序 交换两个变量的函数 指针应用

复制代码
#include <stdio.h>
//从大到小排序 
void swap(int *a,int *b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
int main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    if(a<b) swap(&a,&b);
    if(c>a) swap(&a,&c);
    if(c>b) swap(&c,&b);
    printf("从大到小的顺序为:%d,%d,%d\n",a,b,c);
    printf("从小到大的顺序为:%d,%d,%d\n",c,b,a);
    getchar();
}
复制代码

 

复制代码
#include <stdio.h>
int main()
{   
    int a,b,c,d;
    scanf("%d,%d,%d",&a,&b,&c);
    (c>b)?(d=b,b=c,c=d):1,(c>a)?(d=a,a=c,c=d):1,(a<b)?(d=a,a=b,b=d):1;
    printf("%d,%d,%d",a,b,c);
    getchar();
}
复制代码

 

#include <stdio.h>
int main()
{    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    printf("%d,%d,%d",a>b?(a>c?a:c):(b>c?b:c),a>b?(a<c?a:(b>c?b:c)):(a>c?a:(b>c?c:b)),a<b?(a<c?a:c):(b<c?b:c));
    getchar();
}

说明:第一项求最大值:a>b?(a>c?a:c):(b>c?b:c),a>b a>c成立时最大值为a,a>b a<c最大值为c,a<b  b>c时最大值为b, a<b b<c时最大值为c
           第二项求中间值:a>b?(a<c?a:(b>c?b:c)):(a>c?a:(b>c?c:b)) :

                                       a>b a<c:a为中间值;a>b  a>c b>c:b为中间值;a>b a>c b<c:c为中间值
                                       a<b a>c :a为中间值l a<b a<c b>c:c为中间值;a<b a<c b<c:b为中间值

         第三项求最小值:a<b?(a<c?a:c):(b<c?b:c) ,a<b a<c :a为最小值;a<b a>c:c为最小值; a>b b<c :b为最小值; a>b b>c:c为最小值

posted @   myrj  阅读(161)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-09-18 交通法规
点击右上角即可分享
微信分享提示