关于定义数组在一个循环外导致数据出错
											 程序代码:
程序代码:#include "iostream"
using namespace std;
int main ()
{
    int acount[10005],sum,N,i,L,M,num1,num2,j;
    cin >> N;
    while(N--){
        acount[10005] = {0},sum=0;
        cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
        for(i=0; i<M; i++){
            cin >>num1>>num2;//num1,num2表示起始、终点
            for(j=num1; j<=num2; j++)
              acount[j]++;  
        } 
        for(i=0; i<=L; i++)
        if(acount[i]!=0) sum++;
        cout << L+1-sum << endl;
    }
    return 0;
}这个我把数组定义在外面导致答案错了,下面这个我把数组定义在循环里面,答案就对了 程序代码:
程序代码:#include "iostream"
using namespace std;
int main ()
{
    int N,i,L,M,num1,num2,j;
    cin >> N;
    while(N--){
        int acount[10005] = {0},sum=0;
        cin >>L>> M;//L 代表马路的长度,M 代表区域的数目
        for(i=0; i<M; i++){
            cin >>num1>>num2;//num1,num2表示起始、终点
            for(j=num1; j<=num2; j++)
              acount[j]++;  
        } 
        for(i=0; i<=L; i++)
        if(acount[i]!=0) sum++;
        cout << L+1-sum << endl;
    }
    return 0;
}Expected | Yours
15
| 15
964
| 332
58
| 19
75
| 13
12
| 7
468
| 7
1699
| 7
62
| 7
390
| 7
17
| 2
24
| 2
5
| 2
69
| 2
52
| 0
227
| 0
147
| 0
731
| 0
8
| 0
82
| 0
这是答案错误的地方,还麻烦大家能够帮我找出问题。



 
											





 
	    

 
	

