一、PTA实验作业
题目1:7-1 字符串转换成十进制整数
1. 本题PTA提交列表
2. 设计思路
定义变量i=0,j表示循环变量,m=1表示判断第一个十六进制数之前是否有‘-’的条件,flag=1表示第一个十六进制数之前没有‘-’,number=0表示转换后的十进制数
定义字符数组a[999]存放转换前字符串,b[999]存放转换后字符串
while 输入a[i]≠‘#‘
IF 【a[i]是十六进制数
IF (m为真
for j=0 to j<i
IF a[j]=‘-’
flag=0 表示第一个十六进制数前有‘-’
break
end for
m=0 判断结束,之后不再判断)
b[j]=a[i] 把十六进制数传递到数组b
j++】
i++
end while
a[i]=‘\0‘; b[j]=‘\0‘
for j=0 to b[j]=‘\0‘
IF b[j]是数字 number=number*16+b[j]-‘0‘
IFb[j]是小写字母 number=number*16+b[j]-‘a‘
IFb[j]是大写字母 number=number*16+b[j]-‘A‘
IF flag=0 输出带‘-’的number
否则输出不带‘-’的number
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
1.一开始理解错误,认为必须当第一个十六进制数前是负号时number就为负数,后来c++运行结果出来和pta不一样才发现是之前有符号即可