注册 登录
编程论坛 C语言论坛

很简单的一题,但是为什么不AC。

H_M 发布于 2019-08-18 12:25, 1591 次点击
这道题:https://www.
我写的是这样的,给出的三个例子都能通过,但是一直不能AC。
程序代码:
#include <stdio.h>

int main()
{
    char a[30][2]={ 0 },i;
    int x,count=0;

    scanf("%d",&x);
    scanf("%c",&i);    //获取换行
    while(x--)
    {
        gets(a[x]);   
        if(a[x][0]!=a[x+1][0])
            count++;
    }
    scanf("%c",&i);//获取换行
    printf("%d",count+1);
    return 0;
}


求抱大佬大腿,我怎么错了

[此贴子已经被作者于2019-8-18 12:29编辑过]

3 回复
#2
rjsp2019-08-19 09:15

程序代码:
#include <stdio.h>

int main( void )
{
    unsigned count = 0;

    unsigned n;
    scanf( "%u", &n );
    char last = 0;
    for( unsigned i=0; i!=n; ++i )
    {
        char cur;
        scanf( " %c", &cur );
        if( cur != last )
        {
            ++count;
            last = cur;
        }
    }

    printf( "%u\n", count+1 );
}

#3
H_M2019-08-19 14:27
回复 2楼 rjsp
果然是scanf的毛病,我看网上很多讲要注意scanf会缓存数据啥的,但是 空格 的有啥作用?麻烦给个链接,看看。谢谢了。
#4
rjsp2019-08-19 15:21
空白符:任何格式字符串中的单个空白符处理所有来自输入的可用连续空白符(如同通过于循环中调用 isspace 确定)。注意格式字符串中 "\n" 、 " " 、 "\t\t" 或其他空白无区别。
https://zh.
1