c语言出现Use of undeclared identifier 问题 5

报错:Useofundeclaredidentifier'throw'Useofundeclaredidentifier'bool'Useofundeclarediden... 报错:Use of undeclared identifier 'throw'Use of undeclared identifier 'bool'Use of undeclared identifier 'numberend'要怎么改?代码如下:#include <stdio.h>#include <string.h>char s1[100];float s2[100];int n2;void cal(int x){ switch(x){ case 1:s2[n2-2]+=s2[n2-1];break; case 2:s2[n2-2]-=s2[n2-1];break; case 3:s2[n2-2]*=s2[n2-1];break; case 4:if(s2[n2-1])s2[n2-2]/=s2[n2-1];else throw 0; } n2--;}float calall(){ int stack[100],ns=0; int n1=strlen(s1); bool numberend=0;int nbracket=0; for(int i=0;i<n1;){ if(s1[i]>47&&s1[i]<58){ if(numberend)throw 1;numberend=1; sscanf(s1+i,"%f",&s2[n2++]); while((s1[i]>47&&s1[i]<58)||s1[i]=='.')i++; } char* sop="(+-*/)"; int op=strchr(sop,s1[i++])-sop; if(op<0 || op>6)throw 3; if(op==0){if(numberend)throw 1;nbracket++;} if(op==5){if(nbracket<=0)throw 2;nbracket--;} if(op>0 && op<6 && !numberend)throw 1; if(op>0 && op<5)numberend=0; if(op==1 ||op==2 ||op==5)while(ns>0&&stack[ns-1]>0)cal(stack[--ns]); if(op==3 ||op==4)while(ns>0&&stack[ns-1]>2)cal(stack[--ns]); if(op<5)stack[ns++]=op; if(op==5)ns--; } if(nbracket)throw 2; if(!numberend)throw 1; while(ns)cal(stack[--ns]); return s2[0];}int main(){ printf("负数请用:(0-正数)表示,退出请输入:a+回车\n"); while(1) { n2=0; scanf("%s",s1); if(s1[0]=='a')return 0; try{ printf("%g\n",calall());} catch(int x) { switch(x) { case 0:printf("不能除以0\n");break; case 1:printf("运算符位置不正确\n");break; case 2:printf("左右括号不匹配\n");break; case 3:printf("存在不合法字符\n");break; } } }} 展开
 我来答
百度网友faadf46
高粉答主

2020-03-09 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:76.1万
展开全部

c语言出现Use of undeclared identifier 问题是设置错误造成的,解决方法为:

1、遇到警告Use of undeclared identifier ‘p’ ...就是说这里有无法识别的p。

2、可以直接找到这个p值。p下面有一个_,说明就是该处出错。

3、要是该p值不用的话就直接删掉,若是需要用的话就直接声明好了,很有可能声明的时候出错,往上面的代码找一下。

4、这里就是直接删掉p这个值,因为该值以后的代码里是不到的。

5、Unused variable 'arr'.就是arr该数组没有被使用。假如不用可以删掉,需要的话等后面的代码应用了就不会出现警告了。

DoramiHe
2017-12-22 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
#include "stdafx.h" #include <iostream> using namespace std; * void fun1(double p1,double p2,double p3); void fun2(double q1,double q2,double q3); * void main() main前加入*部分 使用函数前没有声明
追问
显示:'stdafx.h' file not found 而且其他的错误也没有变
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式