华为2019秋招笔试题1

版权声明:版权声明:本文为博主原创文章,博客地址:http://blog.csdn.net/weixin_41969587,未经博主允许不得转载。 https://blog.csdn.net/weixin_41969587/article/details/82285619

在一个字符串中,找出所有的整数并求和

题目描述:

给定一个字符串str,求其中全部整数数字之和

输入描述

1、忽略小数点,例如”A1.2”,认为包含整数1和2;
2、如果整数的左侧出现字符 “-“,则奇数个认为是负整数,偶数个认为是正整数。
例如”AB-1CD- -2EF- - -3” ,认为包含整数-1、2和-3。
(注意:这里的”-“与”-“间是连续的,没有空格隔开)

输出描述

输出即为字符串中所有整数数字之后。

#include<iostream>
using namespace std;
int main(){
    int num[1000],n=0,m=0,result,p=0,size,sum=0;
    string s;
    cin>>s; 
    size=s.size();
    while(n<size){
        result=0;
        if(s[n]>='0'&&s[n]<='9')
        {
           result=s[n++]-'0';
        while(s[n]>='0'&&s[n]<='9'){
            result=10*result+s[n]-'0';
            n++;
            } 
            if(p%2==1)//判断"-"的个数
            num[m++]=result*(-1);
            else
            num[m++]=result;
            p=0;

        }else{
            if(s[n]=='-')
            ++p;
        } 
        n++;
    }
    for(int i=0;i<m;i++)
    sum+=num[i];
    cout<<sum<<endl;
    return 0;
}

代码的运行图:
这里写图片描述
上面是自己写的代码,如有错误,欢迎大家指出!

猜你喜欢

转载自blog.csdn.net/weixin_41969587/article/details/82285619