'isnumber' : local function definitions are illegal,这是怎么回事?

王朝知道·作者佚名  2009-03-28
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

#include<cstdlib>#include <process.h>#include <iostream.h>#include <conio.h>#include <stdlib.h>#include <math.h>double number1,number2,answer,val;class oopcalc {public:void calcadd();void calcsub();void calcdiv();void calcmult();double calcmixed();//hun he yun suanvoid test();//ce shivoid calcfartocel();void calcceltofar();void calcsroot();void exitprog();void menu();void badinput();private:double add(double x, double y);double sub(double x, double y);double div(double x, double y);double mult(double x,double y);double mixed();double fartocel(double x);double celtofar(double x);double sqroot(double x);};.........double oopcalc::calcmixed(){char p[80];//计算公式存储数组int n;//数组下标double isnumber();//分析数据double addnumber();//加减函数double exenumber();//乘除函数double isnumber()//分析公式数据{double num;if(p[n]=='('){n++;num=addnumber();if(p[n]!=')'){cout<<"算式有误!!\n";system("pause");exit(-1);}n++;return num;}if(!isdigit(p[n])){if(p[n]=='-'){num=0;return num;}cout<<"算式有误!!\n";system("pause");exit(-1);}num=atof(p+n);while(isdigit(p[n]) || p[n]=='.')n++;return num;}double addnumber(){//加减法double num,p1;num=exenumber();while(p[n]=='+' || p[n]=='-'){char x=p[n];n++;p1=exenumber();if(x=='+') num+=p1;if(x=='-') num-=p1;}return num;}double exenumber(){//乘除法double num,p2;num=isnumber();while(p[n]=='*' || p[n]=='/'){char x=p[n];n++;p2=isnumber();if(x=='*')num*=p2;if(x=='/')num/=p2;}return num;}double num=0;do {cout<<"输入计算公式:(exit=退出) ";cin>>p;num=addnumber();cout.precision(16);cout<<"计算结果为: "<<num<<endl;cout<<endl;n=0;}while(strcmp(p,"exit"));return 0;};}......void main(){oopcalc s;s.menu();cout<<endl;}

參考答案:

C++不能在函数内部定义其他函数。

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航