标题:[求助]程序有一个错误 谁帮我看下 谢谢
只看楼主
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
结帖率:100%
 问题点数:0 回复次数:11 
[求助]程序有一个错误 谁帮我看下 谢谢

下面是一个计算器的程序 有一个错误 谁帮我看下 谢谢

#include<iostream.h> #include<math.h> #include<stdlib.h> typedef struct { float shu[10]; int top; }s_shu; s_shu shu; s_shu *shu_s=&shu;

typedef struct { char fu[10]; int top; }s_fu; s_fu fu; s_fu *fu_s=&fu;

int push_s(s_shu *s,float x) { if(s->top>=10) return 0; else { s->shu[++s->top]=x; return 1; } }

int push_f(s_fu *s,char x) { if(s->top>=10) return 0; else { s->fu[++s->top]=x; return 1; } }

char pop_f(s_fu *s) { if (s->top<0) return 0; else { s->top--; return(s->fu[s->top+1]); } }

float pop_s(s_shu *s) { if (s->top<0) return 0; else { s->top--; return(s->shu[s->top+1]); } } char gettop(s_fu *s) { if(s->top<0) return 0; else return(s->fu[s->top]); } class Tpoppy { public: Cpoppy(char a[20],int n); float Calculate(); private: int Fuhao(char fu1); float Jisuan(float a,int c,float b); }; Tpoppy::Cpoppy(char a[20],int n) { int i; float temp1,temp2=0; for(i=n;i>=0;i--) { if(a[i]>='\060') { { if (a[i]<'\060') break; else temp1=float(atoi(&a[i])); } } if(a[i]<'\060') { push_f(fu_s,a[i]);push_s(shu_s,temp1); } } } int Tpoppy::Fuhao(char fu1) { switch(fu1) { case '\057':return 4; case '\052':return 3; case '\055':return 2; case '\053':return 1; default:return 0; } } float Tpoppy::Jisuan(float a,int c,float b) { switch(c) { case 4:a=b/a;break; case 3:a=b*a;break; case 2:a=b-a;break; case 1:a=b+a;break; default:break; } return a; } float Tpoppy::Calculate() { float temp1,temp2; char temp3; temp1=pop_s(shu_s); do { temp2=pop_s(shu_s); temp3=pop_f(fu_s);

if(Fuhao(temp3)>=Fuhao(gettop(fu_s))) { temp1=Jisuan(temp1,Fuhao(temp3),temp2); } if(Fuhao(temp3)<Fuhao(gettop(fu_s))) { push_s(shu_s,Jisuan(pop_s(shu_s),Fuhao(pop_f(fu_s)),temp2)); goto loop; } } } //说错误出在这个地方 但我找不出原因

void main() { char a[20]; int i,n; float t; fu_s->top=0; shu_s->top=0; Tpoppy Apoppy; a[0]='+'; for(i=1;i<20;i++) { cin>>a[i]; if (a[i]==61) break; n=i; } Apoppy.Cpoppy(a,n); t=Apoppy.Calculate();

cout<<endl; for(i=1;i<=n+1;i++) { cout<<pop_f(fu_s)<<pop_s(shu_s); } cout<<endl<<t<<endl; }

E:\c\text\jisqi.cpp(142) : error C2059: syntax error : '}' 执行 cl.exe 时出错.

jisqi.exe - 1 error(s), 0 warning(s)

[此贴子已经被作者于2004-12-20 10:23:45编辑过]

搜索更多相关主题的帖子: shu 计算器 int top 
2004-12-20 10:20
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
得分:0 

这么都不帮我????


动于心而静如水
2004-12-20 23:42
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
得分:0 

一大堆问题

loop标号怎么只有一个,你要跳到那去?

T什么类的构造函数是不是把名字写错了?


2004-12-21 00:38
yfuy23
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-7-12
得分:0 

我觉得你的这个类的成员函数有问题。但是我看不出你的函数有什么功能,不明白你的总体思路

首先 do没有while配对,goto loop 语句找不到对应的loop标号

另外你的这个函数没有返回值

是不是你哪儿抄错了,我帮你改了下只是没有错误,运行时没有任何输出。

我改得肯定不对,不过这样就没有语法上的错误了

你拷回去编译下看看

float Tpoppy::Calculate() { float temp1,temp2; char temp3; temp1=pop_s(shu_s); //do//do能单独用吗?? //{ temp2=pop_s(shu_s); temp3=pop_f(fu_s);

if(Fuhao(temp3)>=Fuhao(gettop(fu_s))) { temp1=Jisuan(temp1,Fuhao(temp3),temp2); } if(Fuhao(temp3)<Fuhao(gettop(fu_s))) { push_s(shu_s,Jisuan(pop_s(shu_s),Fuhao(pop_f(fu_s)),temp2)); // goto loop;//找不到loop } //} return 0;//加个返回值 } //说错误出在这个地方 但我找不出原因

2004-12-21 08:49
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 

感觉怎么大家写程序时,杂乱无章啊

写程序要有注释,这是作为一个程序员的最基本的素质问题


大家都是朋友,有空就来坐坐!
2004-12-21 09:19
renyihehe
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2004-12-19
得分:0 
对对,长点程序最好多来点注释,也把主体思想说一下,不然大大们也不好看,还得花费太多时间,不好!
2004-12-21 09:41
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
得分:0 

看的头昏了

[此贴子已经被作者于2004-12-21 10:32:17编辑过]


2004-12-21 10:13
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
得分:0 
能不用goto就不用,我现在连标号都不会使了。

2004-12-21 10:19
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
得分:0 

楼上 说的对, 我不会用goto的,

汇编中才用goto ~~~~


2004-12-21 10:26
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
得分:0 
还有你那个数组,需要默认构造函数。

2004-12-21 10:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-9683-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.278337 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved