询问

P1047 [NOIP2005 普及组] 校门外的树

jgdlkfjg @ 2023-11-13 11:59:40

大佬问一下,为什么有的合格,有的不合格?我已经对重叠的部分进行处理了。

#include<stdio.h>

int main()
{
    int l=0,m=0,tree=0,u=0,v=0,sum=0;
     scanf("%d,%d",&l,&m);
    tree=l+1;
    int a[tree-1]={0};
    for(int i=0;i<=m-1;i++)
    {
        scanf("%d,%d",&u,&v);
        int*p=&a[u];
       for(int b=u;b<=v;b++)
        {
            *p=a[b];
            if(*p==0)
            {
            *p=1;
            p++;
            sum=sum+1;
            }
            if(*p==1)
            {
            p++;
            } 
        }
    }
    tree=tree-sum;
    printf("%d\n",tree);
    return 0;
}

by ashaoruite @ 2023-11-17 22:19:34

你的“scanf("%d,%d",&l,&m);“是什么意思, 不应该是“scanf("%d %d",&l,&m);", 你后面那个也是这个问题, 还有你后面那个“if(*p==1)p++” 是什么意思,题目也没说呀,我已经帮你改过了,你看一下,我这边是ac了


by ashaoruite @ 2023-11-17 22:24:32

#include<stdio.h>

int main() {
    int l=0,m=0,tree=0,u=0,v=0,sum=0;
    scanf("%d %d",&l,&m);
    tree=l+1;
    int a[tree-1]= {0};
    for(int i=0; i<=m-1; i++) 
    {
        scanf("%d %d",&u,&v);
        int*p=&a[u];
        for(int b=u; b<=v; b++) 
        {
            *p=a[b];
            if(*p==0) 
            {
            *p=1;
            sum=sum+1;
            }
            p++;
        }
    }
    tree=tree-sum;
    printf("%d\n",tree);
    return 0;
}

by ashaoruite @ 2023-11-17 22:29:48

@ashaoruite 我发错了


|