2413780002
发表于 2015-7-5 01:04:09
回复看看
xiaoxiaoluomu
发表于 2015-7-9 11:07:56
多学习点例子,帮助很大!
率性而为33
发表于 2015-8-29 15:46:34
hh
flyword
发表于 2015-9-1 23:26:35
抓紧时间学习
gggrdfxk
发表于 2015-9-3 11:00:44
膜拜膜拜
玄凌
发表于 2015-9-3 13:12:34
33333333333333333333333
231564
发表于 2015-9-7 09:21:37
学习
剑客夜帝
发表于 2015-9-11 19:59:17
{:1_1:}
y290176346
发表于 2015-9-16 15:05:01
感谢小甲鱼老师
预感熄烟
发表于 2015-11-30 21:54:47
小甲鱼,你真好
姜海涛123
发表于 2016-2-1 08:27:37
真的好极了
hnust_wurui
发表于 2016-2-14 09:24:36
99
Leoi_Chan
发表于 2016-3-12 16:54:10
我看看
浅唱丶
发表于 2016-5-20 10:05:58
来学习
SCUT_大土豆
发表于 2016-5-26 21:56:21
#include <stdio.h>
#include <stdlib.h>
#define STACKSIZE 100
#define INIT_STACK_SIZE 10
typedef struct SqStack
{
char *base;
char *top;
int stacksize;
}SqStack;
void InitSqStack(SqStack *s)
{
s->base=(char*)malloc(STACKSIZE*sizeof(char));
if(!s->base)
exit(0);
s->top=s->base;
s->stacksize=STACKSIZE;
}
void Push(SqStack *s,char mychar)
{
if(s->top-s->base==s->stacksize)
{
s->base=(char*)realloc(s->base,(STACKSIZE+INIT_STACK_SIZE)*sizeof(char));
if(!s->base)
exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=INIT_STACK_SIZE;
}
*(s->top++)=mychar;
}
void Pop(SqStack *s,char *ch)
{
if(s->top==s->base)
exit(0);
*ch=*(--s->top);
}
int EmptySqStack(SqStack *s)
{
if(s->top!=s->base)
return 1;
else
return 0;
}
int main()
{
char a_mychar,b_mychar,c_mychar;
char a_elem,b_elem,c_elem;
int temp=0;
SqStack a,b,c;
InitSqStack(&a);
InitSqStack(&b);
InitSqStack(&c);
scanf("%c",&a_mychar);
while(a_mychar!='#')
{
Push(&a,a_mychar);
scanf("%c",&a_mychar);
}
fflush(stdin);
scanf("%c",&b_mychar);
while(b_mychar!='#')
{
Push(&b,b_mychar);
scanf("%c",&b_mychar);
}
while(EmptySqStack(&a)&&EmptySqStack(&b))
{
Pop(&a,&a_elem);
Pop(&b,&b_elem);
c_mychar=((a_elem-'0')+(b_elem-'0')+temp)%10+'0';
temp=((a_elem-'0')+(b_elem-'0'+temp))/10;
Push(&c,c_mychar);
}
while(EmptySqStack(&a))
{
Pop(&a,&a_elem);
c_mychar=((a_elem-'0')+temp)%10+'0';
temp=((a_elem-'0')+temp)/10;
Push(&c,c_mychar);
}
while(EmptySqStack(&b))
{
Pop(&b,&b_elem);
c_mychar=((b_elem-'0')+temp)%10+'0';
temp=((b_elem-'0')+temp)/10;
Push(&c,c_mychar);
}
if(temp==1)
Push(&c,'1');
while(EmptySqStack(&c))
{
Pop(&c,&c_elem);
printf("%c",c_elem);
}
return 0;
}
自己实现的代码,希望大家多多交流,欢迎指正{:5_92:}
鱼小鱼c
发表于 2016-5-27 17:18:30
谢谢甲鱼哥
l@x@y
发表于 2016-6-9 13:47:00
{:5_90:}
DAY
发表于 2016-7-6 19:33:06
#include<cstdio>
#include<cstdlib>
typedef int SElemType;
#define MAXSIZE 100000
typedef struct StackNode{
SElemType data;
struct StackNode *next;
};
typedef struct LinkStack{
StackNode *top;
int count;
};
void initLinkStack(LinkStack *S){
S->top=NULL;
S->count=0;
}
void Push(LinkStack *S,SElemType e){
StackNode *p=(StackNode *)malloc(sizeof(StackNode));
p->data=e;
p->next=S->top;
S->top=p;
S->count++;
}
void Pop(LinkStack *S,SElemType *e){
StackNode *p;
p=S->top;
*e=S->top->data;
S->top=S->top->next;
S->count--;
free(p);
}
int main()
{
LinkStack a,b,c;
char a_t;char b_t;
int i=0;
int e,d;
int t=0;
initLinkStack(&a);initLinkStack(&b);initLinkStack(&c);
printf("请输入两个大整数,两数用空格隔开:\n");
scanf("%s%s",a_t,b_t);
while(a_t!='\0'){
Push(&a,a_t-'0');
++i;
}
i=0;
while(b_t!='\0'){
Push(&b,b_t-'0');
++i;
}
while(a.count && b.count){
Pop(&a,&e);
Pop(&b,&d);
Push(&c,(e+d+t)%10);
t=(int)((e+d+t)/10);
}
while(a.count){
Pop(&a,&e);
Push(&c,(e+t)%10);
t=(int)((e+t)/10);
}
while(b.count){
Pop(&b,&e);
Push(&c,(e+t)%10);
t=(int)((e+t)/10);
}
printf("计算的结果为:\n");
if(t>0)printf("%d",t);
while(c.count){
Pop(&c,&e);
printf("%d",e);
}
printf("\n");
return 0;
}
/*
【个人原创】
以链栈的形式实现。。
欢迎大家互相学习*/
Einsteng
发表于 2016-7-10 17:04:47
很喜欢小甲鱼
caopeirui
发表于 2016-7-21 16:15:08
123333333333333