第一行输入两个整数
代表数组中的元素数量、查询次数。
第二行输入
个整数
代表初始数组。
此后
行,每行输入两个整数
代表一次查询。
对于每一次查询操作,在一行上输出一个整数,代表区间和。
3 2 1 2 4 1 2 2 3
3 6
#include <stdio.h>
int main() {
int n,q,a,b;
long long r;
scanf("%d %d",&n,&q);
int c[n+1];
c[0]=0;
long long d[n+1];
d[0]=0;
for (int i=1; i<n+1; i++) {
scanf("%d",&c[i]);
d[i]=d[i-1]+c[i];
}
while (q--) {
scanf("%d %d", &a, &b);
r=d[b]-d[a-1];
printf("%lld\n",r);
}
return 0;
} #include <stdio.h>
int main() {
long long n,q;
long long *p1;
scanf("%d%d",&n,&q);
long long arr[1000];
long long brr[100];
p1=arr;
for(int i=0;i<n;i++){
scanf("%lld",&arr[i]);
}
long long a,b;
long long t=0;
while(q){
scanf("%lld%lld",&a,&b);
long long sum=0;
for(int i=a-1;i<b;i++){
sum+=*(p1+i);
}
brr[t++]=sum;
q--;
}
for(int i=0;i<t;i++){
printf("%lld\n",brr[i]);
}
return 0;
}我这段代码为什么有些样例通不过,求解