(悄悄) 感觉大部分题解写的很长哎
其实 scanf 和 printf 就能完美解决!
知识点如下
不确定是什么字符,直接使用 %*c
(表示读入一个字符并且不进行赋值)。
如果确定的话,直接往上写!
可以使用 %x
读入一个 16 进制整数。
但是在这里不能这么用,因为他会贪心的一直读取,直到无法读取。故我们要限制他读取位数,使用 %2x
,详见 Cppreference
可以使用 %x
输出一个 16 进制整数 ( a-f 小写), 可以使用 %X
输出一个 16 进制整数 ( A-F 大写)。
同样, 我们可以使用场宽来控制位数, 比如 %2X
就可以输出一个 2 位大写 16 进制整数。
但是如果你试一试就可以发现他只会使用空格来补空位,而不是我们预期的 0。
那么这个时候,就可以在场宽上面多加一个 0,表示补零。
综上,我们可以使用 %02X
来输出。
正常版本:
cpp#include <cstdio>
#include <cmath>
int a,b,c;
int main() {
scanf("#%2x%2x%2x",&a,&b,&c);
a=abs(255-a),b=abs(255-b),c=abs(255-c);
printf("#%02X%02X%02X",a,b,c);
}
本文作者:CornWorld
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!