不是VIP会员,不能显示答案

题目解答

题目:
#include <stdio.h>

char c[200][200];

int s[200], m, n;

void numara() {

int i,j, cod, nr;

for(j=0; j<n; j++) {

nr=0; cod=1;

for(i=0; i<m; i++) {

if(c[i][j]=='1') {

if(!cod) {cod=1;s[nr]++;nr=0;}

}

else {

if (cod) {nr=1;cod=0;}

else nr++;

}

}

if(!cod) s[nr]++;

}

}

int main() {

int i,j;

scanf("%d %d\n", &m, &n);

for(i= 0; i<m; i++) gets(c[i]);

numara();

for(i=1; i<=m; i++)

if(s[i]!= 0) printf("%d %d",i, s[i]);

return 0;

}


输入保证是正整数m和n以及一个m*n的01矩阵,且相邻元素之间没有空格。如

下例:

2 4

0101

1000

判断题

1) 若将第21行的“int i,j;”改为“int i;”,则程序会出现编译错误。()

2) 程序最少输出0个数,最多输出2*m个数。()

3) s[i]表示矩阵中有s[i]个列有i个0。( )

4) 若把第10行的“cod=1;”和第13行的“cod=0;”全部换成“cod^=1;”,则程序运行结果不变。( )


选择题

5) 若m=100,n=100,则s[1]的最大值是( )。

6) 若m=95,n=95,则s[5]的最大值是( )。
考点:
分析:
解答:
评论:
老师: