7-1 十二进制字符串转换成十进制整数(PTA)
首先说一下,是PTA上面的题目的答案(纯自己做)
题目如下:
7-1十二进制字符串转换成十进制整数 (10 分)
输入一个以#结束的字符串,要求滤去所有的非十二进制字符(不分大小写),组成一个新的表示十二进制数字的字符串,然后将其转换为十进制数后输出。题目保证输出在长整型范围内。
输入格式:
输入在一行中给出一个以#结束的非空字符串。
输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。
输入样例:
+P-xf1+a-4!B#
结尾无空行
输出样例:
3227
#include <stdio.h>
int main()
{
int c=0,d=0,e=0;
char a[80],b[80];
for(;;c++){
a[c]=getchar();
if(a[c]=='#'){
break;
}
}
a[c]='\0';
for(c=0;;){
if(a[c]=='\0'){
break;
}
if(a[c]>='0'&&a[c]<='9'||a[c]=='A'||a[c]=='B'||a[c]=='a'||a[c]=='b'){
b[d]=a[c];
d++;
}
c++;
}
b[d]='\0';
for(c=0;b[c]!='\0';c++){
if(b[c]>='0'&&b[c]<='9'){
e=e*12+b[c]-'0';
}
if(b[c]=='B'||b[c]=='A'){
e=e*12+b[c]-'A'+10;
}
if(b[c]=='a'||b[c]=='b'){
e=e*12+b[c]-'a'+10;
}
}
printf("%ld\n",e);
return 0;
}
然后我说说我对这题的看法,我觉得这个题目是存在一定的问题的
就比如这个图片,我在百度百科找到的,
如果得到pta题目调试的3227,就必须把a读进去,但是为什么小x不读呢,我感到很疑惑,希望同志们能给我一些帮忙。
所以,我刚开始做的代码是这样的:
#include <stdio.h>
int main()
{
int c=0,d=0,e=0;
char a[80],b[80];
for(;;c++){
a[c]=getchar();
if(a[c]=='#'){
break;
}
}
a[c]='\0';
for(c=0;;){
if(a[c]=='\0'){
break;
}
if(a[c]>='0'&&a[c]<='9'||a[c]=='A'||a[c]=='B'||a[c]=='a'||a[c]=='b'||a[c]=='X'||a[c]=='x'||a[c]=='E'||a[c]=='e'){
b[d]=a[c];
d++;
}
c++;
}
for(c=0;b[c]!='\0';c++){
putchar(b[c]);
}
printf("\n");
b[d]='\0';
for(c=0;b[c]!='\0';c++){
if(b[c]>='0'&&b[c]<='9'){
e=e*12+b[c]-'0';
}
if(b[c]=='B'||b[c]=='A'||b[c]=='X'||b[c]=='E'){
e=e*12+b[c]-'A'+10;
}
if(b[c]=='a'||b[c]=='b'||b[c]=='x'||b[c]=='e'){
e=e*12+b[c]-'a'+10;
}
}
printf("%ld\n",e);
return 0;
}
那个中间的putchar是为了我检查b[c]里面到底存进了什么。
7-1 十二进制字符串转换成十进制整数(PTA)相关推荐
- C#十二进制字符串转换成十进制整数
十二进制字符串转换成十进制整数 输入一个以#结束的字符串,要求滤去所有的非十二进制字符(不分大小写),组成一个新的表示十二进制数字的字符串,然后将其转换为十进制数后输出.题目保证输出在长整型范围内. ...
- PTA第3章-9 字符串转换成十进制整数 (15 分)
第3章-9 字符串转换成十进制整数 (15 分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第 ...
- 字符串转换成十进制整数
字符串转换成十进制整数 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第一个十六进制字符之前存在字 ...
- 实验7-3-6 字符串转换成十进制整数 (15分)
十六进制字符 包括0~9 和 a~f(在本道题中规定不分大小写) 解题思路 循环输入一字符串,当出现'#'时退出输入. 设置两个标志位,分别记录第一个负号出现的位置和第一个十六进制出现的位置.(如果第 ...
- 输入一个字符串转换成十进制整数
输入一个字符串,它可能是2–16进制数中一种进制数的表示,计算它对应的10进制数可能的最小值.例如,"151"可以是6–16进制中任何一种进制数的表示. 对应的10进制数可能的最小 ...
- C语言字母转十进制,c语言十进制转换_C语言 字符串转换成十进制整数
最佳答案 这道题不算难,就是筛选除了a,b,c,d,e,f和数字之外的所有字符,然后把十六进制数转换为十进制数,你等我写一下程序再发上来.追答: #include #include = "0 ...
- 八进制字符串转成十进制整数
题如下: 将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字符串为:556,则输出十进制整数366. 代码如下: #include <stdio.h>#define N 10v ...
- 十六进制字符串转换成十进制非负整数
十六进制字符串转换成十进制非负整数 题目详情 输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出. 输入格式 ...
- 把字符串转换成int整数
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...
最新文章
- java课程心得_javaweb课程心得体会(三)
- 二进制计算机课教案,计算机与二进制教案.pdf
- python当前日期获取程序_Python获取当前时间日期
- Android性能优化之启动优化实战篇,最新整理
- 和ts一般怎么玩_KPL:一诺采访引热议,quot;裴擒虎是个野王都会quot;,暖阳怎么办?...
- 开放应用模型操作指南(一)| 云服务一键接入 OAM 体系
- docker+kibana+filebeat的安装
- 导出oracle数据c#代码,C# 程序导入导出oracle数据库
- STM32-SPI通信
- javascript打开模式窗口的用法
- 夺命雷公狗---ECSHOP---01-解决报错问题
- python图像化计算器
- ecg 幅度_心电图(ECG或EKG)设计原理及实例应用
- 【1】星空派GD32F303开发板介绍
- 银河麒麟linux找不到网卡,中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程-网卡设置...
- 6个超炫酷的HTML5电子书翻页动画
- [推荐]《人一生要读的60本书》
- mangodb 高频数据_MongoDB和数据流:实现一个MongoDB Kafka消费者
- 【情人节表白神器:送她一个HTML动态表白网站 带源码】
- Origin数据设置为日期/时间的方法
热门文章
- 明星分分合合的洪荒点击量,微博Mesh服务化改造如何支撑?(附PPT下载)
- UE4自定义资源和编辑器(一):创建自定义资源
- 100首英文经典歌曲
- 使用Bochs模拟器和IDA调试MBR
- Android 设备接入扫码枪,Android 设备接入扫码枪
- CSS - 选择器优先级介绍
- 跨浏览器书签导入实例演示,更好的管理书签!
- html img标签alt属性吗,img标签可以不用alt属性吗
- Codeforces Round #595 (Div. 3) E. By Elevator or Stairs?
- 女生什么样的表现会说明她喜欢你?——男生记得都看一遍,谨记~