PTA 7-232 循环:整数累加表达式求值

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;
}

解题思路

  1. 根据题目要求,运用循环并判断数字和符号
  2. 利用函数,数组,循环,以及ASCII的知识
  3. 根据题目要求格式并进行输出
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值