没什么特殊的算法,不加注释了,一次遍历得结果,一次遍历输出就可以了

注意char转int型

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

int res[200][200] = {0};

int main()
{
    char ar[201];
    while(scanf("%s",ar) != EOF)
    {
        int len = strlen(ar);
        int i=0;
        int m,n,j,k;
        int max=0;
        while(i<len)
        {
            while((ar[i] > '9' || ar[i] < '0') && i < len)
            {
                i++;
            }
            m = i;
            if(i >= len)
            {
                break;
            }
            while(ar[i] <= '9' && ar[i] >= '0' && i < len)
            {
                i++;
            }
            n = i;
            if((n-m) == max)
            {
                for(j=m; j<n; j++)
                {
                    res[k][j-m] = (int)(ar[j] - '0');
                }
                k++;
            }
            if((n-m) > max)
            {
                k = 0;
                max = n-m;
                for(j=m; j<n; j++)
                {
                    res[k][j-m] = (int)(ar[j] - '0');
                }
                k++;
            }
        }
        for(i=0; i<k; i++)
        {
            for(j=0; j<max; j++)
            {
                printf("%d",res[i][j]);
            }
        }
        printf(",%d\n",max);
    }
    return 0;
}