PTA 7-232 循环:整数累加表达式求值
分数 30
作者 叶青
单位 长春理工大学
模拟计算器,对整数连加表达式求值
输入格式:
输入任意长度的连续加法表达式,回车结束;
表达式不含有空格;
如果表达式有其它运算符,则提前结束
输出格式:
输出表达式的值
输入样例:
1+2+3+4+5+6 1+2+3-6-7
输出样例:
21 6
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
int cal(int st[], int k) //这个函数用于计算累加
{
int sum = st[0];
for (int m = 1; m < k - 1; m++, m++)
{
if (st[m] == '+')
{
sum = sum + st[m + 1];
}
else
{
break;
}
}
return sum;
}
void main()
{
int sum1 = 0;
int i, c = 0;
char st1[10000];
int st2[10000];
scanf("%s", st1);
for (i = 0; st1[i] != '\0'; i++)
{
if (st1[i] > 47 && st1[i] < 58) //如果字符是数字
{
sum1 = (st1[i] - 48) + sum1 * 10; //转换为整数并累加
st2[c] = sum1; // 存储当前累加的整数
}
else //如果字符是加号
{
st2[++c] = st1[i];
sum1 = 0; // 重置sum1
c++;
}
}
printf("%d\n", cal(st2, c + 1)); //确保函数能够正确处理输入的数据,并得到正确的结果。
return;
}
解题思路
- 根据题目要求,运用循环并判断数字和符号
- 利用函数,数组,循环,以及ASCII的知识
- 根据题目要求格式并进行输出