文章

3

粉丝

163

获赞

2

访问

34.6k

头像
IP地址-AC
P1023 贵州大学机试题
发布于2020年3月9日 20:48
阅读数 8.8k

这题困扰了一下午,细节太多了。自身太菜写的有点繁琐

1.全数字或字母不带点号情况

2.例如29..23.12.45点号连着的情况,还有点号在最前和最后的情况

3.最后答案一定要用%02X大写的情况,我就是这卡了一下午!!!!

#include 
#include 
#include 
using namespace std;
int exchange(string s)
{
    int sum = 0,coun = 1;
    for(int i = s.size()-1;i >= 0;i--)
    {
        sum += (s[i] - '0')*coun;
        coun *= 10;
    }
    return sum;
}
int main()
{
    string s,temp;
    getline(cin,s);
    int flag = 0,sum = 0,start;
    int num[4];
    int k = -1;
    int coun = 0;
    for(int i = 0;i < s.size();i++)
    {
        if((s[i]>'9' || s[i] <'0') && s[i] != '.')
            flag = 1;
        else if(s[i] == '.')
        {
            if(s[i+1] == '.' || i == s.size()-1 || i == 0)
                flag = 1;
            start = i;
            sum = exchange(temp);
            if(sum > 255 || sum < 0)
                flag = 1;
            num[++k] = sum;
            cou...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发