c语言编写简单的科学计算器
答案:2 悬赏:20 手机版
解决时间 2021-04-04 18:07
- 提问者网友:疯子也有疯子的情调
- 2021-04-04 05:23
c语言编写简单的科学计算器
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-04-04 07:00
//////////////////////////////////////////////////////////%^=()", *exp_ptr))
{ //用strchr函数在字符串"+-*/%^=()"中查找*exp_ptr指向的字符所在位置,判断返回值(非0为真就执行)以便是否执行以下语句
tok_type = DELIMITER;//把tok_type置为DELIMITER
// advance to next char
*temp++ = *exp_ptr++;
}
else if(isalpha(*exp_ptr))
{
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++; //isdelim判断是否是分隔符,当*exp_ptr指向的字符不为分隔符时把值负给*temp
tok_type = VARIABLE;//把tok_type置为VARIABLE
}
else if(isdigit(*exp_ptr))
{ // isdigit判断*exp_ptr指向的字符是否为数字
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;
tok_type = NUMBER;
}
*temp = '\0';
}
// isdelim函数的具体实现,如果参数是一个分割符则返回真
int parser::isdelim(char c)
{
if(strchr(" +-/*%^=()", c) || c==9 || c=='\r' || c==0)//把"+-/*%^=()09\r定义非分隔符
return 1;
return 0;
}
int main()
{
char expstr[80];
Info prgInfo;
parser ob; // 创建一个parser类型的实例
prgInfo.displayInfo();
for(;;)
{
cout << "请输入你要计算的表达式: ";
cin.getline(expstr, 79);//读入表达式到名为expstr的数组中,数组大小为79
if(*expstr=='.') break;
cout << "计数的结果是: " << ob.eval_exp(expstr) << "\n\n";
};
return 0;
}
{ //用strchr函数在字符串"+-*/%^=()"中查找*exp_ptr指向的字符所在位置,判断返回值(非0为真就执行)以便是否执行以下语句
tok_type = DELIMITER;//把tok_type置为DELIMITER
// advance to next char
*temp++ = *exp_ptr++;
}
else if(isalpha(*exp_ptr))
{
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++; //isdelim判断是否是分隔符,当*exp_ptr指向的字符不为分隔符时把值负给*temp
tok_type = VARIABLE;//把tok_type置为VARIABLE
}
else if(isdigit(*exp_ptr))
{ // isdigit判断*exp_ptr指向的字符是否为数字
while(!isdelim(*exp_ptr)) *temp++ = *exp_ptr++;
tok_type = NUMBER;
}
*temp = '\0';
}
// isdelim函数的具体实现,如果参数是一个分割符则返回真
int parser::isdelim(char c)
{
if(strchr(" +-/*%^=()", c) || c==9 || c=='\r' || c==0)//把"+-/*%^=()09\r定义非分隔符
return 1;
return 0;
}
int main()
{
char expstr[80];
Info prgInfo;
parser ob; // 创建一个parser类型的实例
prgInfo.displayInfo();
for(;;)
{
cout << "请输入你要计算的表达式: ";
cin.getline(expstr, 79);//读入表达式到名为expstr的数组中,数组大小为79
if(*expstr=='.') break;
cout << "计数的结果是: " << ob.eval_exp(expstr) << "\n\n";
};
return 0;
}
全部回答
- 1楼网友:舊物识亽
- 2021-04-04 07:48
#include
#include
#include
void main()
{
int i,j,k,len,result=0;
char str[200],str1[10],ch;
printf("请输入加减运算多项式:\n");
gets(str);
len=strlen(str);
j=0;
for(i=0; i {
if(str[i]!=' ')
{
str[j]=str[i];
j=j+1;
}
}
str[j]='\0';
k=0;
ch=0;
for(i=0; i {
if(str[i]!='+' && str[i]!='-')
{
str1[k++]=str[i];
}
else
{
str1[k]=0;
if(ch=='+') result+=atoi(str1);
else if(ch=='-') result-=atoi(str1);
else result=atoi(str1);
ch=str[i];
k=0;
}
}
if(k>0)
{
str1[k]=0;
if(ch=='+') result+=atoi(str1);
else if(ch=='-') result-=atoi(str1);
else result=atoi(str1);
}
printf("%s=%d\n",str,result);
}
#include
#include
void main()
{
int i,j,k,len,result=0;
char str[200],str1[10],ch;
printf("请输入加减运算多项式:\n");
gets(str);
len=strlen(str);
j=0;
for(i=0; i
if(str[i]!=' ')
{
str[j]=str[i];
j=j+1;
}
}
str[j]='\0';
k=0;
ch=0;
for(i=0; i
if(str[i]!='+' && str[i]!='-')
{
str1[k++]=str[i];
}
else
{
str1[k]=0;
if(ch=='+') result+=atoi(str1);
else if(ch=='-') result-=atoi(str1);
else result=atoi(str1);
ch=str[i];
k=0;
}
}
if(k>0)
{
str1[k]=0;
if(ch=='+') result+=atoi(str1);
else if(ch=='-') result-=atoi(str1);
else result=atoi(str1);
}
printf("%s=%d\n",str,result);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |