没什么特殊的算法,不加注释了,一次遍历得结果,一次遍历输出就可以了
注意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;
}