tugouzhishen 2022-09-30 21:22 采纳率: 88.5%
浏览 39
已结题

C语言定义函数将循环优化掉

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

if(p2->a>p1->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
else if(p2->b>p1->b&&p2->a==p2->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
else if(p2->c>p1->c&&p2->b==p1->b&&p2->a==p2->a)
{
temp=*p2;
*p2=*p1;
*p1=temp;
}
定义一个函数,将if else 循环和交换写到一起,一行解决

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-09-30 21:30
    关注

    p1,p2是什麽结构啊?把类型贴出来,不然函数参数没法写
    if...else也不是循环啊,你是希望将三个代码块内容写一个函数吗?
    大概这样吧:

    typedef struct _strcu
    {
         int a;
         int b;
         int c;
    }strcu;
    strcu a,b;
    change(&a,&b);
    
    void change(strcu *p1,strcu *p2)
    {
        int flag = 0;
        if(p2->a>p1->a)
            flag = 1;
        else if(p2->b>p1->b&&p2->a==p2->a)
            flag = 1;
        else if(p2->c>p1->c&&p2->b==p1->b&&p2->a==p2->a)
            flag = 1;
        if(flag == 1)
        {
            strcu temp=*p2;
            *p2=*p1;
            *p1=temp;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 赞助了问题酬金15元 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 如何在cst中建立这种螺旋扇叶结构
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角