伊冯_等末子
长整形的加法QAQ不晓得哪里出错了
展开Biu

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define STACK_INIT_SIZE 50

#define STACKINCREMENT 10

///////////定义堆栈

typedef char ElemType;

typedef struct

{

ElemType *top;

ElemType *base;

int stacksize;

}sqStack;

//////////初始化栈

void initStack(sqStack *s)

{

s->base=(ElemType *)malloc(sizeof(ElemType)*STACK_INIT_SIZE); //内存中开辟一段连续空间作为栈空间,首地址赋值给s->base

if(!s->base)

{

printf("空间开辟失败!\n");

exit(0);

}

s->top=s->base; //最开始栈低就是栈顶

s->stacksize=STACK_INIT_SIZE; //最大容量为STACK_INIT_SIZE

}

//////////进栈

void push(sqStack *s,ElemType e)

{

if(s->top - s->base >= s->stacksize) //如果栈满

{

s->base = (ElemType*)realloc(s->base, sizeof(ElemType)*(STACKINCREMENT+ s->stacksize )); //追加空间,首地址赋值给s->base

if(!s->base)

{

printf("空间开辟失败2!\n");

exit(0);

}

s->top=s->base+s->stacksize; //s->top指向栈顶

s->stacksize=s->stacksize+STACKINCREMENT; //设置栈的最大容量

}

*(s->top)=e; //放入数据

s->top++; //自加

}

/////////出栈

void pop(sqStack *s,ElemType *e)

{

if(s->top==s->base) //栈空,无法进行出栈操作

return;

else

*e=*--(s->base); //用e将栈顶元素返回

}

////////计算堆栈s当前的长度

int stackLen(sqStack s)

{

return(s.top-s.base);

}

////////加法运算

void add(sqStack *s1,sqStack *s2,sqStack *s3)

{

char e;

char a1,a2,a3,c=0; ////a1,a2存放从s1,s2中取出来的元素,a3=a1+a2,c中存“进位”

while (stackLen(*s1)!=0 && stackLen(*s2)!=0) //s1,s2不为空

{

pop(s1,&a1);

pop(s2,&a2);

a3=(a1-48)+(a2-48)+48;

if(a3>'9')

{

a3=a3-'9'+47;

c=1 ; //进位

}

else

c=0;

push(s3,a3);

}

if(stackLen(*s1)!=0) //当s2长度为0,s1不为空

{

while (stackLen(*s1)!=0 ) //s1不为空

{

pop(s1,&a1);

a3=a1+c;

if(a3>'9')

{

a3=a3-'9'+47;

c=1 ; //进位

}

else

c=0;

push(s3,a3);

}

}

else if(stackLen(*s2)!=0) //当s1长度为0,s2不为空

{

while (stackLen(*s2)!=0 ) //s2不为空

{

pop(s2,&a2);

a3=a2+c;

if(a3>'9')

{

a3=a3-'9'+47;

c=1 ; //进位

}

else

c=0;

push(s3,a3);

}

}

if(c==1) //如果最后有进位,将字符‘1’入栈S3

push(s3,a3);

}

main()

{

char e;

sqStack s1,s2,s3;

initStack(&s1);

initStack(&s2);

initStack(&s3);

printf("输入第一个任意长整数,按#结尾:");

scanf("%c",&e);

while(e!='#')

{

push(&s1,e);

scanf("%c",&e);

}

getchar(); //接受回车符

printf("输入第一个任意长整数,按#结尾:");

scanf("%c",&e);

while(e!='#')

{

push(&s2,e);

scanf("%c",&e);

}

getchar(); //接受回车符

add(&s1,&s2,&s3);

printf("加法结果为:\n");

while(stackLen(s3)!=0)

{

pop(&s3,&e);

printf("%c",e);

}

}

程序运行后就报错了QAQ 不晓得哪里出问题了

[查看全文]
月夜猫妖
麻烦大家帮忙解决一下cpu占用的问题
展开Biu

麻烦看一下,现在的问题就在于如何解决这个cpu占用在大量访问时特别高的问题

程序在下头的帖子里

https://www.gn00.com/t-338623-1-1.html

[查看全文]
月夜猫妖
某个求测试的网站原代码及附件
展开Biu

本帖最后由 月夜猫妖 于 2013-6-4 22:20 编辑

某个求测试的网站原代码及附件,麻烦各位研究研究,希望能进一步优化这个服务器,似乎个头有些大,度娘盘,希望不会被吞链接。

7z打包版下载地址:

http://pan.baidu.com/share/link?shareid=508969&uk=33928091

zip打包版下载地址:

http://pan.baidu.com/share/link?shareid=330373437&uk=33928091

[查看全文]
Sweet_Sunshine
【小白求助】求助。给个思路。关于要求的第七点。
展开Biu

设计一个学生成绩管理系统,对上学期本班的学习成绩进行管理,具有录入、查询、排序等功能,将相关信息存储在文件中,能够对指定文件操作。

要求

1、 每一条记录包括一个学生的学号、姓名、性别、各门课成绩(上学期的科目)、平均成绩。
2、 输入功能:可以一次完成若干条记录的输入。
3、 显示功能:完成全部学生记录的显示。
4、 查找功能:完成按姓名或学号查找学生记录,并显示。
5、 排序功能:按学生平均成绩进行排序。
6、 插入功能:按平均成绩高低插入一条学生记录。
7、 应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

只学过一个学期的C++。到现在还只能黑屏操作。关于第七点完全不能理解。。

还有实验报告什么的也没写过。求助QAQ

[查看全文]
~※星燃※~
可不可以把多个Eclipse IDE 集合到一起
展开Biu

如题,我最早为了学JAVA,装的是Eclipse SDK,应该是入门最常用那个吧。

后来学C++,觉得又要装多个VS太麻烦了,就去官网下了一个Eclipse IDE for C/C++ Developers

后来想学安卓,又下了ADT。反正,每下一个IDE就自带一个Eclipse。

我根本不想要这么多啊,开发软件一个就够了,怎么把这些功能都整合到最初的Eclipse SDK中?

[查看全文]
yoy125
想自己制作一个火柴人游戏
展开Biu

RTRTRT 单是靠flash够吗?求游戏引擎教程,求更好的火柴人编辑软件和游戏制作教程

[查看全文]
月夜猫妖
网站求测试
展开Biu

网站求测试

http://www.catcelebi.iego.net:40000/

易语言+html+mysql制作

管理员用户1111

密码1111

[查看全文]
月夜猫妖
关于编码转换的问题
展开Biu

不知道你们有没有过这样的问题,就是在调用api实现utf8到gbk转换的时候单线程没问题,一旦多线程、密集调用就容易报错,有人知道解决方法吗?

[查看全文]