社区讨论

求解 为何改了个数组范围输出就不一样了

P1047[NOIP 2005 普及组] 校门外的树参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi4erxpk
此快照首次捕获于
2025/11/18 18:06
4 个月前
此快照最后确认于
2025/11/18 18:06
4 个月前
查看原帖
这是我过的代码
CPP
var
  i,L,M,j,k,d:integer;
  a,b,c:array[1..10000] of integer;
begin
  read(L,M);
  for i:=1 to M do
  begin
    read(a[i],b[i]);
    for j:=a[i] to b[i] do    
    begin
       c[j]:=1;
    end;
  end;
  for i:=0 to L do 
    if c[i]=1 then k:=k+1;
  write(L-k+1);
end.
但是如果把数组范围改为1..100输出就会少一个,这是什么原因?而且之前是1..100时c实际上是超范围的,为何没错误?

回复

1 条回复,欢迎继续交流。

正在加载回复...