这个程序哪有问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:49:20
总是运行不正确
/*****************************************/

/* 数制转换问题 */

/*****************************************/

#include"stdio.h"
#define MAX 100
int stack[MAX];
int top=-1;

void push(int value) /*入栈*/
{
if(top>=MAX)
printf("\nThe stack is full");
else
{
top++;
stack[top]=value;
}
}

int pop() /*出栈*/
{
int temp;
if(top<0)
printf("\nThe stack is empty!!!\n");
else
{
temp=stack[top];
top--;
}
return temp;
}

void zhuanhuan(int num,int x) /*运算*/
{
while(num>0)
{
push(num%x); /*余数入栈*/
switch(num%x)
{
case 10:push('A');break; /*16进制字母*/
case 11:push('B');break;
case 12:push('C');break;
case 13:push('D');break;
case 14:push('E');break;
case 15:push('F');brea

void zhuanhuan(int num,int x) /*运算*/
{
while(num>0)
{

switch(num%x)
{
case 10:push('A');break; /*16进制字母*/
case 11:push('B');break;
case 12:push('C');break;
case 13:push('D');break;
case 14:push('E');break;
case 15:push('F');break;
default:
push(num%x); /*余数入栈*/
break;
}
num=num/x;
}
}
这是第一处错误
if("x<=0&&10<x<=16&&x>16") /*改错机制*/
这是第二处错误,这个条件永远为假
别的不说起码下面应该循环吧
}
result=pop();
if(result>='A'&&result<='F') /*ASC码转换输出*/
printf("%c",result);
else
printf("%d",result);
}

稍等!