c语言 表达式求值
描述有t组测试数据,每组数据只有一行,即一个不含括号且只有加减法的正整数表达式。你需要编写一个程序,计算出此表达式的值关于输入第一行为t,表示共有t(t<20)个测试样例...
描述
有t组测试数据,每组数据只有一行,即一个不含括号且只有加减法的正整数表达式。你需要编写一个程序,计算出此表达式的值
关于输入
第一行为t,表示共有t (t < 20) 个测试样例。每个测试样例只含一行,即一个不含括号且只有加减法的正整数表达式。表达式中每个整数的值大于0小于1000,且至少包含一个运算符。每行输入的字符个数不大于200。
关于输出
按如下格式,输出每个表达式的值。
例子输入
2
1+2
5-3+1-5+1
例子输出
Case 1:
1+2=3
Case 2:
5-3+1-5+1=-1
提示
stdlib.h中有一个函数atoi, 可以把一个只含整数的字符串转为一个int型的整数。
原型 int atoi(const char *nptr) 展开
有t组测试数据,每组数据只有一行,即一个不含括号且只有加减法的正整数表达式。你需要编写一个程序,计算出此表达式的值
关于输入
第一行为t,表示共有t (t < 20) 个测试样例。每个测试样例只含一行,即一个不含括号且只有加减法的正整数表达式。表达式中每个整数的值大于0小于1000,且至少包含一个运算符。每行输入的字符个数不大于200。
关于输出
按如下格式,输出每个表达式的值。
例子输入
2
1+2
5-3+1-5+1
例子输出
Case 1:
1+2=3
Case 2:
5-3+1-5+1=-1
提示
stdlib.h中有一个函数atoi, 可以把一个只含整数的字符串转为一个int型的整数。
原型 int atoi(const char *nptr) 展开
2个回答
展开全部
#include<stdio.h>
#inlcude<stdlib.h>
void main()
{
char str[20][201],*p0,*p1;
int t,i,s,f,loop;
scanf("%d",&t); if ( t>20 ) t=20;
for ( i=0;i<t;i++ ) scanf("%s",str[i]);
for ( i=0;i<t;i++ )
{ p0=p1=str[i]; s=0; f=1; loop=1;
while ( loop )
{ while ( (*p1)>='0' && (*p1)<='9' ) p1++;
s+=(f*atoi(p0));
switch ( (*p1) )
{ case 0: loop=0; break;
case '+': f=1; break;
case '-': f=(-1); break;
default: loop=0; break;
}
p1++; p0=p1;
}
printf("\nCase %d:\n",i+1);
printf("%s=%d\n",str[i],s);
}
}
#inlcude<stdlib.h>
void main()
{
char str[20][201],*p0,*p1;
int t,i,s,f,loop;
scanf("%d",&t); if ( t>20 ) t=20;
for ( i=0;i<t;i++ ) scanf("%s",str[i]);
for ( i=0;i<t;i++ )
{ p0=p1=str[i]; s=0; f=1; loop=1;
while ( loop )
{ while ( (*p1)>='0' && (*p1)<='9' ) p1++;
s+=(f*atoi(p0));
switch ( (*p1) )
{ case 0: loop=0; break;
case '+': f=1; break;
case '-': f=(-1); break;
default: loop=0; break;
}
p1++; p0=p1;
}
printf("\nCase %d:\n",i+1);
printf("%s=%d\n",str[i],s);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询