|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
from pythonds.basic import Stack
ub = Stack()
def jinzhizhuanhua(num, fundamention):
dic = "0123456789ABCDEF"
if num < fundamention:
ub.push(dic[num])
else:
ub.push(dic[num % fundamention])
jinzhizhuanhua(int(num//fundamention),fundamention)
jinzhizhuanhua(22543253, 16)
for i in range(ub.size()):
print(ub.pop(),end='')
把这段代码翻译成c语言可以吗,效果相同就行
可以将这段代码翻译成C语言,实现相同的功能。以下是翻译后的C代码:
- #include <stdio.h>
- #define MAX_SIZE 100
- struct Stack {
- int top;
- char items[MAX_SIZE];
- };
- void push(struct Stack* stack, char item) {
- if (stack->top == MAX_SIZE - 1) {
- printf("Stack Overflow\n");
- return;
- }
- stack->items[++stack->top] = item;
- }
- char pop(struct Stack* stack) {
- if (stack->top == -1) {
- printf("Stack Underflow\n");
- return '\0';
- }
- return stack->items[stack->top--];
- }
- void jinzhizhuanhua(int num, int fundamention) {
- struct Stack ub;
- ub.top = -1;
- char dic[] = "0123456789ABCDEF";
- if (num < fundamention) {
- push(&ub, dic[num]);
- }
- else {
- push(&ub, dic[num % fundamention]);
- jinzhizhuanhua(num/fundamention, fundamention);
- }
- while (ub.top != -1) {
- printf("%c", pop(&ub));
- }
- }
- int main() {
- jinzhizhuanhua(22543253, 16);
- return 0;
- }
复制代码
这段C代码定义了一个结构体 Stack 来表示栈,实现了 push 和 pop 函数来操作栈。 jinzhizhuanhua 函数实现了进制转换的逻辑,将结果打印出来。在 main 函数中调用 jinzhizhuanhua 来进行进制转换。
|
|