求助,70分代码
如果第一个数是1的话,如
1001000
0001000
0001111
0001000
0001000
0001000
1111111
能得到正确结果;
但是数据点8(一个80 * 80的输入,开头为10个1)
会输出 80 1 9 ...(后面也是对的)
求大佬帮助!!!
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[200]; cin>>a;
int n=strlen(a); //求出n
cout<<n<<" "; //输出n
int b[n][n];
for(int i=0;i<n;i++) b[0][i] = a[i]-'0';//把第一行的数据录入b
for(int i=1;i<n;i++){
char c[n]; cin>>c;
for(int j=0;j<n;j++) b[i][j] = c[j]-'0';//把第2行到第n行数据录入b
}
int x=0,k=0;//x记录有连续多少个,k为0或1
for(int i=0;i<n*n;i++){
if(b[i/n][i%n]==k) x++;
else k = (k+1)%2 , cout<<x<<" " , x=1;
}
cout<<x;//输出最后连续的数目
return 0;
}