数据结构-顺序栈笔试题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
	}
}
posted @ 2025-04-16 13:28  w1888  阅读(7)  评论(0)    收藏  举报