作业帮 > 综合 > 作业

VFP改错……下列程序的功能是从键盘上输入一个年号(阿拉伯数字),用汉字表示该年份.例如:输入1954,则应输出一九五四

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/01 02:46:56
VFP改错……
下列程序的功能是从键盘上输入一个年号(阿拉伯数字),用汉字表示该年份.例如:输入1954,则应输出一九五四年.输入2008,则应输出二0 0八年.
但该程序有错,请改正(不允许增加或删除程序行)
hzc="0一二三四五六七八九" &&数值0为全角
st=""
INPUT "输入一个4位数的年号:" to y
q=INT(y/1000)
st= SUBS(hzc,q*2+1,2)+st
b=INT((y-q*1000)/100)
st= SUBS(hzc,b*2+1,2)+st
s=INT((y-q*1000-b*100)/10)
st= SUBS(hzc,s*2+1,2)+st
g=MOD(y,10)
st= SUBS(hzc,g*2+1,2)+st
"对应的汉字年份:",st,"年"
VFP改错……下列程序的功能是从键盘上输入一个年号(阿拉伯数字),用汉字表示该年份.例如:输入1954,则应输出一九五四
其实你调用程序调试器一步步看就是知道结果了.
出错的原因就是累加的时候把st放在后面了,放在前面也就是st+subs()这样,每次转换的都在后面就对了.修改结果如下:
hzc="0一二三四五六七八九" &&数值0为全角
st=""
INPUT "输入一个4位数的年号:" to y
q=INT(y/1000)
st=st+SUBS(hzc,q*2+1,2)
b=INT((y-q*1000)/100)
st=st+SUBS(hzc,b*2+1,2)
s=INT((y-q*1000-b*100)/10)
st=st+SUBS(hzc,s*2+1,2)
g=MOD(y,10)
st=st+SUBS(hzc,g*2+1,2)
"对应的汉字年份:",st,"年"