16进制的简单运算

描述
现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。
输入
第一行输入一个正整数T(0<T<100000)
接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位
输出
每个表达式输出占一行,输出表达式8进制的结果。
样例输入
3
29+4823
18be+6784
4ae1-3d6c
样例输出
44114
100102
6565

 1 #include <stdio.h>
 2 
 3 int main(){
 4     int a;
 5     int b;
 6     int sum;
 7     int T;
 8     char c;
 9     
10     scanf("%d",&T);
11     
12     while(T--){
13         scanf("%x%c%x",&a,&c,&b);
14         
15         if(c=='+')
16             sum=a+b;
17             
18         else
19             sum=a-b;
20             
21         if(sum<0){   //只有当sum为__int64类型时,才要进行正负的判断
22             sum=-sum;
23             printf("-");
24         }
25         
26         printf("%o\n",sum);
27     }
28     
29     
30     
31     return 0;
32 }

 

 
posted @ 2014-11-15 13:48  zqxLonely  阅读(250)  评论(0编辑  收藏  举报