为什么只能得到栈已经满了???
//本次作业目的:将十进制的数转化为二进制,八进制或十六进制#include <stdio.h>
typedef struct
{
int A;
int top;
}stack;
void iniStack(stack *S);//初始化栈
int Push(stack *S, intx);//压栈
int Pop(stack *S, int *x);//出栈
int EmptyStack(stack *S);//判栈空
void DecToOthers(int n, int b);//进行进制间的转换
int main()
{
int i ,j;
printf("请输入一个十进制的数字:");
scanf("%d", &i);
DecToOthers(i, 2);
return 0;
}
void iniStack(stack *S)//初始化栈
{
S->top = -1;
}
int Push(stack *S, intx)//压栈
{
if (S->top = 9)
{
printf("栈中的数据已经满了\n");
return 0;
}
S->top++;
S->A = x;
return 1;
}
int Pop(stack *S, int *x)//出栈
{
if (EmptyStack(S))
{
printf("栈是空的");
return 0;
}
else
{
x = S->A;
S->top--;
return 1;
}
}
int EmptyStack(stack *S)//判栈空
{
return(S->top == -1);
}
void DecToOthers(int n, int b)//进行进制间的转换
{
char M[] = "abcdefg";
stack Z;
int x ,i;
iniStack(&Z);
while (n)
{
Push(&Z, n%b);
if (n > 9)
{
i = n - 9;
n = M;
}
n = n/b;
}
while (EmptyStack(&Z))
{
Pop(&Z, &x);
printf("%d", x);
}
}
请 不 要 重 复 发 帖 qiuyouzhi 发表于 2020-5-15 20:11
请 不 要 重 复 发 帖
可是不重复发帖,根本就没人理 本帖最后由 qiuyouzhi 于 2020-5-15 20:37 编辑
WFR 发表于 2020-5-15 20:34
可是不重复发帖,根本就没人理
没人理也不能重复发帖,但你可以换个论坛问问 算了,帮你改了一下
原因是Push那里==写成=了
//本次作业目的:将十进制的数转化为二进制,八进制或十六进制
#include <stdio.h>
typedef struct
{
int A;
int top;
}stack;
void iniStack(stack *S);//初始化栈
int Push(stack *S, intx);//压栈
int Pop(stack *S, int *x);//出栈
int EmptyStack(stack *S);//判栈空
void DecToOthers(int n, int b);//进行进制间的转换
int main()
{
int i ,j;
printf("请输入一个十进制的数字:");
scanf("%d", &i);
DecToOthers(i, 2);
return 0;
}
void iniStack(stack *S)//初始化栈
{
S->top = -1;
}
int Push(stack *S, intx)//压栈
{
if (S->top == 9)
{
printf("栈中的数据已经满了\n");
return 0;
}
S->top++;
S->A = x;
return 1;
}
int Pop(stack *S, int *x)//出栈
{
if (EmptyStack(S))
{
printf("栈是空的");
return 0;
}
else
{
x = S->A;
S->top--;
return 1;
}
}
int EmptyStack(stack *S)//判栈空
{
return(S->top == -1);
}
void DecToOthers(int n, int b)//进行进制间的转换
{
char M[] = "abcdefg";
stack Z;
int x ,i;
iniStack(&Z);
while (n)
{
Push(&Z, n%b);
if (n > 9)
{
i = n - 9;
n = M;
}
n = n/b;
}
while (EmptyStack(&Z))
{
Pop(&Z, &x);
printf("%d", x);
}
}
还有问题,我继续改改 qiuyouzhi 发表于 2020-5-15 20:39
算了,帮你改了一下
原因是Push那里==写成=了
大哥还有输出的地方有错误少个!
WFR 发表于 2020-5-15 20:48
大哥还有输出的地方有错误少个!
怎么进行转化为十六进制的运算
页:
[1]