数组-08. 字符串转换成十进制整数(15)
2014-12-01 00:05
225 查看
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果过滤后字符串的首字符为“-”,代表该数是负数。
输入格式:
输入在一行中给出一个以#结束的非空字符串。
输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
输出样例:
输入格式:
输入在一行中给出一个以#结束的非空字符串。
输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
+P-xf4+-1!#
输出样例:
-3905
#include<stdio.h> #include<math.h> int main() { char s[80]; int a[80],sum=0,b; gets(s); int i=0,j=0,flag=0; while(s[i]!='#'){ if(s[i]>='0'&&s[i]<='9'){a[j]=s[i]-48;j++;} if(s[i]=='A'||s[i]=='a'){a[j]=10;j++;} if(s[i]=='B'||s[i]=='b'){a[j]=11;j++;} if(s[i]=='C'||s[i]=='c'){a[j]=12;j++;} if(s[i]=='D'||s[i]=='d'){a[j]=13;j++;} if(s[i]=='E'||s[i]=='e'){a[j]=14;j++;} if(s[i]=='F'||s[i]=='f'){a[j]=15;j++;} if(j==1) b=i; i++; } for(i=0;i<b;i++){ if(s[i]=='-'){ flag=1; break; } } if(flag) printf("-"); for(i=j-1;i>=0;i--){ sum+=a[i]*pow(16,j-1-i); } printf("%d",sum); }
相关文章推荐
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数(15)
- 数组-08. 字符串转换成十进制整数
- 数组-08. 字符串转换成十进制整数
- 7-39 字符串转换成十进制整数(15 分)
- 8.编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数
- 字符串转换成十进制整数
- PTA-字符串转换成十进制整数
- 字符串转换成十进制整数 (15分)
- 十六进制字符串转换成十进制整数的C++实现源代码
- 5-9 字符串转换成十进制整数 (15分)
- 5-1 字符串转换成十进制整数 (15分) (这是补上的7月6号)
- 字符串转换成十进制整数 十六进制转换十进制
- 十六进制字符串转换成十进制整数 天梯赛模拟题重现一