📄 szys.c
字号:
if(isPoint_included(q)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=q;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t1=t1+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(q)){ /*doesn't include point*/
while(swap->link->info!='_') {swap=swap->link; i++;}
swap=q;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
}
swap=temp; i=0; /* calculate t2 */
if(isPoint_included(temp)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0) {t2=t2+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t2=t2+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(temp)){
while(swap->link->info!='_'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0) {t2=t2+(NumberType)swap->link->info-'0';swap=swap->link;}
}
if(p->link->info=='+') t=t1+t2;
else if(p->link->info=='-') t=t1-t2;
else if(p->link->info=='*') t=t1*t2;
else if(p->link->info=='/') t=t2/t1;
/*///// Deal with the left //////////////////*/
q=temp;
p=p->link;
}
/***********************************************************************************/
/***********************************************************************************/
else if(!isOperator(p->info)&&!isOperator(p->link->link->info)&&Calculator_underline(p->link)==1){
if(q==pllist->base){ /* find q */
while(q!=p){
if(q->info=='_') temp=q;
q=q->link;
}
q=temp;
}
temp1=temp=pllist->base;
while(temp!=q){ /* find temp */
if(temp->info=='_') temp1=temp;
temp=temp->link;
}
temp=temp1; temp1=pllist->base;
/*////////// Calculate function /////////////////////*/
swap=q; i=0; /* calculate t1 */
if(isPoint_included(q)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=q;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t1=t1+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(q)){ /*doesn't include point*/
while(swap->link->info!='_') {swap=swap->link; i++;}
swap=q;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
}
swap=temp; i=0; /* calculate t2 */
if(isPoint_included(temp)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0) {t2=t2+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t2=t2+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(temp)){
while(swap->link->info!='_'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0) {t2=t2+(NumberType)swap->link->info-'0';swap=swap->link;}
}
if(p->link->info=='+') t=t1+t2;
else if(p->link->info=='-') t=t1-t2;
else if(p->link->info=='*') t=t1*t2;
else if(p->link->info=='/') t=t2/t1;
/*///// Deal with the left //////////////////*/
q=temp;
temp=p=p->link;
/***note*** Dealt withe the second part*/
while(!isOperator(p->link->info)) p=p->link;
swap=temp; t1=0;i=0; /* calculate t1 */
if(isPoint_included(temp)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t1=t1+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(temp)){
while(swap->link->info!='_'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
}
if(p->link->info=='+') t=t+t1;
else if(p->link->info=='-') t=t-t1;
else if(p->link->info=='*') t=t*t1;
else if(p->link->info=='/') t=t/t1;
/*///// Deal with the left //////////////////*/
p=p->link;
}
/************************************************************/
/************************************************************/
else if(isOperator(p->info)&&isOperator(p->link->info)){
temp=temp1=pllist->base; t2=0;i=0; /*find temp */
while(temp!=q){
if(temp->info=='_') temp1=temp;
temp=temp->link;
}
temp=temp1;
swap=temp;
if(isPoint_included(temp)){
while(swap->link->info!='.') {swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0) {t2=t2+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t2=t2+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(temp)){
while(swap->link->info!='_'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0||i==-1) {t2=t2+(NumberType)swap->link->info-'0';swap=swap->link;}
}
/*calculate t*/
if(p->link->info=='+') t=t+t2;
else if(p->link->info=='-') t=t-t2;
else if(p->link->info=='*') t=t*t2;
else if(p->link->info=='/') t=t2/t;
/* dealt with the left */
temp=swap=pllist->base;
while(swap!=q){
if(swap->info=='_') temp=swap;
swap=swap->link;
}
q=temp;
p=p->link;
}
/*****************************************************************/
/*****************************************************************/
else if(isOperator(p->info) && !isOperator(p->link->info)&&Calculator_underline(p->link)==1){
temp=p;
while(!isOperator(p->link->info)) p=p->link;
swap=temp;
t1=t2=0;i=0;
if(isPoint_included(temp)){
while(swap->link->info!='.') {swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0||i==-1) {t1=t1+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t1=t1+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(temp)){
while(swap->link->info!='_'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0) {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
}
/*calculate t*/
if(p->link->info=='+') t=t+t1;
else if(p->link->info=='-') t=t-t1;
else if(p->link->info=='*') t=t*t1;
else if(p->link->info=='/') t=t/t1;
/* dealt with the left */
temp=swap=pllist->base;
while(swap!=q){
if(swap->info=='_') temp=swap;
swap=swap->link;
}
q=temp;
p=p->link;
}
/*******************************************************************/
/********************************************************************/
else if(isOperator(p->info)&&!isOperator(p->link->info)&&Calculator_underline(p->link)==2){
PNode ID;
temp1=temp=pllist->base;
while(temp!=q){ /* find temp */
if(temp->info=='_') temp1=temp;
temp=temp->link;
}
ID=temp=temp1;
temp1=q=p;
while(!isOperator(p->link->info)) p=p->link;
while(q->link!=p){
if(q->link->info=='_') temp=q->link;
q=q->link;
}
q=temp;
temp=temp1;
swap=q; t1=0;i=0; /* calculate t1 */
if(isPoint_included(q)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=q;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0 ||i==-1) {t1=t1+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*1/10;
t1=t1+m;
swap=swap->link;
i++;
}
}
else if(!isPoint_included(q)){ /*doesn't include point*/
while(swap->link->info!='_') {swap=swap->link; i++;}
swap=q;
while(swap->link->info!='_'&&--i!=0) {
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t1=t1+m;
swap=swap->link;
}
if(i==0 || i==-1) {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
}
swap=temp; t2=0;i=0; /* calculate t2 */
if(isPoint_included(temp)){ /*include point */
while(swap->link->info!='.'){swap=swap->link;i++;}
swap=temp;
while(swap->link->info!='.'&&--i!=0){
j=i;
m=(NumberType)swap->link->info-'0';
while(j--!=0) m=m*10;
t2=t2+m;
swap=swap->link;
}
if(i==0 ||i==-1) {t2=t2+(NumberType)swap->link->info-'0'; swap=swap->link->link;}
i=1;
while(swap->link->info!='_'){
j=i;
m=(NumberType)swap->link->info-'0';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -