吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 854|回复: 10
收起左侧

[求助] C语言求助+讨论

[复制链接]
澄叔 发表于 2022-12-1 10:50
【问题描述】定义函数char change(char c, int n),其对字符c的第n位(n为1~8)进行转换,即c的第n位为0时,转换为1;第n位为1时,转换为0。
【输入形式】字符和第几位。
【输出形式】转换后的字符。
【样例输入】A           5
【样例输出】a


没有金币了,顺便问问怎么获取(好久没来论坛了)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tfrist 发表于 2022-12-1 11:55
本帖最后由 tfrist 于 2022-12-1 12:11 编辑

抛砖引玉一下! 手头没有C编译器,没办法编译测试。 根据想法写的一个伪代码。n的取值应该为 0-7.

char change(char c, int n)
{
  if (c & (1<<n)){
      c &= 0xff^(1<<n);
  }
  else{
     c |= 0xff&(1<<n);
   }

return c;
}
KongKong20 发表于 2022-12-1 12:03
char change(char c, int n)
{
        unsigned char r = 0;

        unsigned char index = 1 << n;
        unsigned char flag = c & index;
        if (flag)
                r = c & 0xff ^ index;
        else
                r = c | index;

        return r;
}
banchengkemeng 发表于 2022-12-1 12:45
char change(char c, int n) {
        return c^(1<<n);
}

免费评分

参与人数 1热心值 +1 收起 理由
maribel + 1 我很赞同!

查看全部评分

tfrist 发表于 2022-12-1 12:52
banchengkemeng 发表于 2022-12-1 12:45
char change(char c, int n) {
        return c^(1

短小精悍!
banchengkemeng 发表于 2022-12-1 12:55

异或1是取反,异或0是不变,所以直接异或一个"目标位置是1,其他位置都是0"的数就好了
iteamo 发表于 2022-12-1 16:41
banchengkemeng 发表于 2022-12-1 12:45
char change(char c, int n) {
        return c^(1

学习了,另辟蹊径~
 楼主| 澄叔 发表于 2022-12-1 16:44
KongKong20 发表于 2022-12-1 12:03
char change(char c, int n)
{
        unsigned char r = 0;

运行很成功,就是看不太懂大体思路,麻烦老哥解释下哈
 楼主| 澄叔 发表于 2022-12-1 16:56
tfrist 发表于 2022-12-1 11:55
抛砖引玉一下! 手头没有C编译器,没办法编译测试。 根据想法写的一个伪代码。n的取值应该为 0-7.

char ...

老哥的答案也是可以的
修改了部分
[C] 纯文本查看 复制代码
char change(char c, int n)
{
    unsigned char r = 0;     //使用的dev,别的编译器应该可以通过的
    if (c & (1<<n)){
      r=c & 0xff^(1<<n);
  }
  else{
     r=c |= 0xff&(1<<n);
   }

return c;
}

 楼主| 澄叔 发表于 2022-12-1 16:58
banchengkemeng 发表于 2022-12-1 12:45
char change(char c, int n) {
        return c^(1

不得不说这个666
“短小精悍”
想听友友的思路呢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表