数据结构-顺序栈笔试题1
设计思路:
1.十进制➡十六进制,不断的除以16,当0/16时则表示结束
2.把余数放入栈中,则可以得到想要的结果
3.需要考虑余数超过10,则要用'A'来替换,11则为'A+1',以此类推
ChangeSystems
/*设计一个进制转换程序,使用顺序栈设计一个把十进制数转换为十六进制数的接口,
*实现当通过键盘输入一个非负的十进制数,可以在终端输出对应的十六进制数。*/
void ChangeSystems(SeqStack_t *Manager ,unsigned int data){
int remainder;
// Loop until the number becomes 0
while(data != 0){
remainder = data % 16; // Get the remainder
data = data / 16; // Update the number
Manager->Bottom[++Manager->Top] = remainder;
}
printf("0X");
// Traverse in reverse order to print the hexadecimal number
for (int i = Manager->Top; i >= 0; --i){
if (Manager->Bottom[i] < 10) printf("%d", Manager->Bottom[i]); // Print digits 0-9
else printf("%c", 'A' + (Manager->Bottom[i] - 10)); // Print letters A-F
}
}

浙公网安备 33010602011771号