虽然你没有上传完整题目
但从你数组开到20000000来看
输入的16进制很可能是很长的
这样 sscanf(a[i],"%x",&b[i]);
整型的b很可能是存不下的 导致错误。
比如输入
1234567890ABCDEF
转成8进制应该是
110642547422052746757
明显你这个代码会得出错误结果。
蓝桥杯,涉及到算法。不可能就这样让你用c库函数就解答出来。楼上说的也有道理,就是预防你们用函数来解答。
请你自己用算法来把16进制转换成8进制,不要偷懒。不然这个蓝桥杯就没有意义了