关于定义数组在一个循环外导致数据出错
程序代码:
#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
这是答案错误的地方,还麻烦大家能够帮我找出问题。