当前位置: 首页 > article >正文

C/C++:有助于define宏定义-原文替换的例题

zzuli 1179: 带参宏定义(函数专题)
题目描述
从键盘输入三个字符,用空格隔开,使用带参宏定义1中SWAP,将三个字符按从大到小的顺序排序输出。
宏定义1:#define SWAP(a, b, t) { t=a; a=b; b=t; }

请尝试,如果用宏定义2中的SWAP,主函数需要如何修改才能得到正确结果?
宏定义2:#define SWAP(a, b, t) t=a; a=b; b=t;
输入
输入三个字符,用空格隔开
输出
输出占一行,包含三个字符,用空格隔开
样例输入 Copy
w a q
样例输出 Copy
w q a

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SWAP(a,b,t){t=a;a=b;b=t;}


int main(){
    char ch[3];
    char t;

    scanf("%c",&ch[0]);
    for(int i=1;i<3;i++){
        scanf(" %c",&ch[i]);
    }
    
    for(int i=0;i<2;i++){
        for(int j=i+1;j<3;j++){
            if(ch[i]<ch[j]) SWAP(ch[i],ch[j],t);
        }
    }
    
    for(int i=0;i<3;i++) printf("%c ",ch[i]);
    printf("\n");
    return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SWAP(a,b,t) t=a;a=b;b=t;

int main(){
    char ch[3];
    char t;

    scanf("%c",&ch[0]);
    for(int i=1;i<3;i++){
        scanf(" %c",&ch[i]);
    }

    for(int i=0;i<2;i++){
        for(int j=i+1;j<3;j++){
            if(ch[i]<ch[j]) {SWAP(ch[i],ch[j],t);}//加大括号
        }
    }

    for(int i=0;i<3;i++) printf("%c ",ch[i]);
    printf("\n");
    return 0;
}

http://www.kler.cn/a/273112.html

相关文章:

  • 2022 NOIP 题解
  • mac-泛洪
  • LeetCode46. 全排列(2024秋季每日一题 57)
  • CAN总线学习笔记(1、CAN总线定义)
  • gulp入门教程14:vinyl
  • 读数据工程之道:设计和构建健壮的数据系统28数据服务常见关注点
  • 深入解析JVM加载机制
  • 解决:visio导出公式为pdf图片乱码问题
  • Python笔记四之协程
  • [ComfyUI报错信息] 节点错误归类及处理办法(最新完整版)
  • ThreadLocal-内存泄露问题
  • 【LeetCode热题100】104. 二叉树的最大深度(二叉树)
  • 二级Java程序题--03综合应用:源代码(01-42)
  • 利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能
  • 【React】Vite创建React+TS项目
  • 类和对象(1)
  • Centos8安装wdCP
  • MATLAB中如何导出EXE或DLL
  • 缺失的数字(c++题解)
  • 【python开发】并发编程(上)
  • 凝思操作系统离线安装mysql和node
  • python 调用redis创建查询key
  • YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点
  • SWUST OJ 961: 进制转换问题
  • 网络管理基础
  • 系统学习Python——装饰器:“私有“和“公有“属性案例-[隐式运行的运算符重载方法无法在Python3.X下委托]