编辑代码

#include <stdio.h>
#include <stdlib.h>

int main() 
{
    char s[1000];
    fgets(s, sizeof(s), stdin);

    int r = 0;
    int l = 0;
    int max_x=0,max_y=0,max_length=0,sum=0,legal_xy=0;

    // 遍历输入字符串
    for (int i = 0; s[i] != '\0'; i++) 
    {
        if (s[i] == '(') 
        {
            l = i+1;
        } 
        else if (s[i] == ')') 
        {
            r = i;
        }

        // 当找到一对括号时
        if (r != 0) 
        {
            char ss[20];
            int idx = 0;
            // 将括号中的字符串提取出来
            for (int j = l; j < r; j++) 
            {
                ss[idx++] = s[j];
            }
            ss[idx] = '\0';

            int j, w;
            sscanf(ss, "%d,%d", &j, &w);

            // 判断坐标是否合法
            if (j > 0 && j < 1000 && w > 0 && w < 1000 && ss[0] != '0') 
            {
                int legal=0;
                for(int i=0;i<idx;i++)
                {
                    if(ss[i]==',' && ss[i+1]!='0')
                        legal=1;
                }
                // 添加到坐标列表
                if(legal==1)
                {
                    legal_xy++;
                    sum=j*j+w*w;
                    if(sum>max_length)
                    {
                        max_x=j;
                        max_y=w;
                        max_length=sum;
                    }
                }
            }

            l = r = 0;
        }
    }

    // 判断是否存在合法坐标
    if (legal_xy == 0) 
    {
        printf("(0,0)\n");
    } 
    else 
    {
        // 按照相对总部的距离进行排序
        printf("(%d,%d)\n", max_x, max_y);
    }

    return 0;
}