C语言:求解试题6,过程详细一点,谢谢
发布网友
发布时间:2023-10-12 07:42
我来回答
共4个回答
热心网友
时间:2024-11-18 20:46
首先,看你题目,题目最后输出的代码有错。
printf这里格式是%s不是%ds。
这个代码s是一个指针数组,每一个指针指向一个字符串。(相当于二维字符数组)
while这一段的意思就是:接收最多9个字符(回车确认)(字符必须是'5'~'8'范围内的字符,输入以外字符无效)。把输入的字符依次保存在数组a中,
while输入完毕,在a数组最后一个字符后面添加结束符号0(这样a才是一个完整的字符串)。
for这一段就是遍历a数组,取出a数组的每一个数字字符,并求'9'-a[k]-1的值,取该值为下标的s数组元素,也就是对应s数组中的字符串(s中每一个元素就是一个指针,其值就是对应字符串的首地址)。
(1)输入5678,那么a数组中的字符串就是“5678”,那么依次取a的元素就是'5','6','7','8'。
那么'9'-a[k]-1的值就是3,2,1,0。那么打印的就是s[3]s[2]s[1]s[0],也就是"four" "three" "two" "one"。选D。
( 2 )输入8561#,a数组中的字符串是“8561”,打印的就是s[0]s[3]s[2]s[7],也就是"one" "four" "three" 。(s[7]没有初值)。选C
(3)(4)同理不解释了。
热心网友
时间:2024-11-18 20:47
a数据只能存放字符 5到8
第一组输入 5678
s['9'-'5'-1] = s[3] == 'four'
s['9'-'6'-1] = s[2] == 'three'
s['9'-'7'-1] = s[1] == 'two'
s['9'-'8'-1] = s[0] == 'one'
记住a只能存放 5678 剩下的你自己推算了下了
热心网友
时间:2024-11-18 20:47
追问求详细解答
热心网友
时间:2024-11-18 20:48
我认识的,然后如节日节日就节日节日就会如如如如解放后大家好哦是so is his公司是事实似乎四十十四黑黑的事实上给公司实施高度公司实施故事告诉事故事故事是个男的还是女的唱的人志坚决斗鱼传奇大结局剧情分集成绩