接着来水题哈哈哈哈
由于一些原因,停止了好久,脑子都不怎么够用了,代码写得也有点乱。
#include<stdio.h>
#include <malloc.h>
#define MAX_STACK 1024
int stack[MAX_STACK];
int top = 0;
void push(int val){
if(top <0 || top >= (MAX_STACK -1 ) ){
printf("the stack status is error!!!\n");
exit(-1);
}
stack[top++] = val;
}
int pop(){
return top >=0 ? stack[--top]:-1;
}
int main(){
int n = 0;
int r = 0;
int flag = 0;
while(scanf("%d %d",&n,&r)!=EOF){
flag = n<0? 1:0;
n=abs(n);
while(n > 0){
int tmp = n % r;
n=n/r;
if(tmp > 0 ){
if(tmp > 9){
push(tmp -10 + 'A');
}else{
push(tmp);
}
}else{
push(0);
}
}
if(flag == 1){
printf("-");
}
while(top>0){
int p = pop();
if(p > 9){
printf("%c",p);
}else if(p >=0 && p <= 9){
printf("%d",p);
}
if(top == 0){
printf("\n");
}
}
}
return 0;
}