C语言 我不明白为什么这段代码不能正常工作

bis0qfac  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(122)

在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。请帮助我。

bihw5rsg

bihw5rsg1#

scanf("%s",&s[n]);-&s[n]s结束的地址。它是**s之后的第一个地址**。您要写入s的第一个地址:&s[0]或者仅仅是s

相关问题