在C程序中:问题是:给定一个长度为N的二进制字符串S。现在需要告诉total在给定的字符串中存在多少个01和10对。
#include<stdio.h>
int main() {
int i,t,j,count;
int n;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&n);
char s[n];
scanf("%s",&s[n]);
j=0,count=0;
while(s[j]!='\0')
{
if(s[j]=='1' && s[j+1]=='0')
{ count++;}
else if(s[j]=='0' && s[j+1]=='1')
{ count++;}
j++;
}
printf("%d\n",count);
}
return 0;
}
当n小于6时,显示正确答案。但当n大于6时,显示0。请帮助我。
1条答案
按热度按时间bihw5rsg1#
scanf("%s",&s[n]);
-&s[n]
是s
结束的地址。它是**s
之后的第一个地址**。您要写入s
的第一个地址:&s[0]
或者仅仅是s
。