C语言输入一个01串得到连0和连1最大的个数
答案:4 悬赏:60 手机版
解决时间 2021-03-21 19:06
- 提问者网友:藍了天白赴美
- 2021-03-21 00:38
C语言输入一个01串得到连0和连1最大的个数
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-03-21 01:48
#include
void main(){
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N[30]); =========>scanf("%s",N);
for(i=0;N[i]!='\0';i++){
if(N[i]==0){ =============>if(N[i] =='0')
k=0;
for(;N[i]=='0';i++) k++; =====> for( ; N[i] != '\0' &&N[i]=='0';i++) k++;
if(k>M0) M0 = k;
}
if(N[i]==1){ =============>if(N[i] == '1')
l=0;
for(;N[i]=='1';i++) l++; =====> for( ; N[i] != '\0' &&N[i]=='1';i++) l++
if(l>M1) M1=l;
}
}
printf("%d,%d",M0,M1);
}
void main(){
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N[30]); =========>scanf("%s",N);
for(i=0;N[i]!='\0';i++){
if(N[i]==0){ =============>if(N[i] =='0')
k=0;
for(;N[i]=='0';i++) k++; =====> for( ; N[i] != '\0' &&N[i]=='0';i++) k++;
if(k>M0) M0 = k;
}
if(N[i]==1){ =============>if(N[i] == '1')
l=0;
for(;N[i]=='1';i++) l++; =====> for( ; N[i] != '\0' &&N[i]=='1';i++) l++
if(l>M1) M1=l;
}
}
printf("%d,%d",M0,M1);
}
全部回答
- 1楼网友:笑迎怀羞
- 2021-03-21 03:54
#include
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N);
for(i=0;N[i]!='';i++)
{
if(N[i]=='0')
{
k=0;
for(;N[i]=='0';i++)
k++;
if(k>M0)
M0=k;
}
if(N[i]=='1')
{
l=0;
for(;N[i]=='1';i++)
l++;
if(l>M1)
M1=l;
}
}
printf("%d,%d",M0,M1);
}
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N);
for(i=0;N[i]!='';i++)
{
if(N[i]=='0')
{
k=0;
for(;N[i]=='0';i++)
k++;
if(k>M0)
M0=k;
}
if(N[i]=='1')
{
l=0;
for(;N[i]=='1';i++)
l++;
if(l>M1)
M1=l;
}
}
printf("%d,%d",M0,M1);
}
- 2楼网友:一秋
- 2021-03-21 02:45
#include
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[300];
scanf("%s",N);//这一行修改了
for(i=0; N[i]!=''; i++)
{
if(N[i]=='0')//这一行修改了
{
k=0;
for(; N[i]=='0'; i++)k++;
if(k>M0)M0=k;
}
if(N[i]=='1')//这一行修改了
{
l=0;
for(; N[i]=='1'; i++)l++;
if(l>M1)M1=l;
i--;//这一行修改了,修改原因是:在本次循环结束后还要执行一次i++
}
}
printf("%d,%d",M0,M1);
}
主要是粗心了。。。没什么大问题
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[300];
scanf("%s",N);//这一行修改了
for(i=0; N[i]!=''; i++)
{
if(N[i]=='0')//这一行修改了
{
k=0;
for(; N[i]=='0'; i++)k++;
if(k>M0)M0=k;
}
if(N[i]=='1')//这一行修改了
{
l=0;
for(; N[i]=='1'; i++)l++;
if(l>M1)M1=l;
i--;//这一行修改了,修改原因是:在本次循环结束后还要执行一次i++
}
}
printf("%d,%d",M0,M1);
}
主要是粗心了。。。没什么大问题
- 3楼网友:白昼之月
- 2021-03-21 02:01
#include
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N[30]); //有下标就是这个元素了
for(i=0;N[i]!='';i++)
{
if(N[i]==0) //这里是不是少了一对单引号
{
k=0;
for(;N[i]=='0';i++)//逻辑有问题了,如果你前面找0的时候 0前面有1怎么办?
k++;
if(k>M0)
M0=k;
}
if(N[i]==1) // 同上,引号
{
l=0;
for(;N[i]=='1';i++)//逻辑问题
l++;
if(l>M1)
M1=l;
}
}
printf("%d,%d",M0,M1);
}
// 先找 0, 然后再 找 1, 都从第一个元素开始找 不能接着后面找
//不知道是你代码写太乱 还是我看错了
void main()
{
int i,j,k,l,M0=0,M1=0;
char N[30];
scanf("%s",N[30]); //有下标就是这个元素了
for(i=0;N[i]!='';i++)
{
if(N[i]==0) //这里是不是少了一对单引号
{
k=0;
for(;N[i]=='0';i++)//逻辑有问题了,如果你前面找0的时候 0前面有1怎么办?
k++;
if(k>M0)
M0=k;
}
if(N[i]==1) // 同上,引号
{
l=0;
for(;N[i]=='1';i++)//逻辑问题
l++;
if(l>M1)
M1=l;
}
}
printf("%d,%d",M0,M1);
}
// 先找 0, 然后再 找 1, 都从第一个元素开始找 不能接着后面找
//不知道是你代码写太乱 还是我看错了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯