进制转换的歪门邪道
#include<stdio.h> #include<stdlib.h> int main() { int T; scanf("%d",&T); while(T--) { int a,b; char ai[100]; scanf("%s%*[-+]%s",ai,ai);//忽略加减符号但保存符号 sscanf(ai,"%x%x",&a,&b);//作为16进制分配数值 printf("%o\n",a+b);//作为8进制输出 } }
#include <stdio.h> int main(){ int t; scanf("%d",&t); while(t--){ int b,c; char a[31]; scanf("%s+%s",a,a); sscanf(a,"%x%x",&b,&c); printf("%o\n",b+c); } }
直接b+c即可,他会自动把负号囊括进第二个数,当第二个数是负数
#include <stdio.h> int main(void) { int s, a, b; char op; scanf("%d", &s); while (s--) { scanf("%x%c%x", &a, &op, &b); if (op == '+') { printf("%o\n", a + b); } else { printf("%o\n", a - b); } } return 0; }
注册一个 南阳理工学院OJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 南阳理工学院OJ 通用账户