十进制转化为八进制,为什么输出答案是错的
#include <stdio.h>#include <stdlib.h>
#define STACK_INIT_SIZE 100
#defineSTACKINCREMENT 10
typedef struct
{
int *base;
int *top;
int stacksize;
}sqstack;
int Initstack(sqstack *s)
{
(*s).base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
if(!(*s).base)
exit(-1);
(*s).top=(*s).base;
(*s).stacksize=STACK_INIT_SIZE;
return 1;
}
int Pop(sqstack *s,int *e)
{
if((*s).top==(*s).base)
{
return 0;
}
e=*--(*s).top;
return1;
}
int Push(sqstack *s,int e)
{
if((*s).top-(*s).base==(*s).stacksize)
{
(*s).base=(int*)realloc((*s).base,((*s).stacksize+STACKINCREMENT)*sizeof(int));
if(!(*s).base)
exit(-1);
(*s).top=(*s).base+(*s).stacksize;
(*s).stacksize+=STACKINCREMENT;
}
*(*s).top++=e;
return 1;
}
int Stackempty(sqstack s)
{
if(s.top==s.base)
{
return 0;
}
else
return 1;
}
void Conversion()
{
int n,e;
sqstack s;
Initstack(&s);
printf("请输入一个十进制数:");
scanf("%d",&n);
while(n)
{
Push(&s,n%8);
n=n/8;
}
printf("下一步");
while(Stackempty(s))
{
Pop(&s,&e);
printf("%d",e);
}
}
intmain()
{
printf("此程序为把十进制用栈转化为八进制\n");
Conversion();
return 0;
}
撸主,我这边是可以的呀~~~
// e=*--(*s).top;
*e = *--(*s).top; // MODIFY BY n0noper
如果还有错,贴出错误截图大家一起讨论。 n0noper 发表于 2016-3-8 08:48
撸主,我这边是可以的呀~~~
厉害,谢谢,头像本人吗 13751652677 发表于 2016-3-8 13:22
厉害,谢谢,头像本人吗
no no no.
I'm a man.
妹纸?加我Q啊{:10_285:}
哈哈,开玩笑的,可以方便联系,有问题一起讨论 #include<iostream>
#include<cstdio>
using namespace std;
int main()//Decimal to octal
{
int m;
char a;
cin>>m;
sprintf(a,"%o",m);
cout<<a<<endl;
} DAY 发表于 2016-3-8 17:52
are you a girl
页:
[1]