C语言 没有显示特定输入的预期输出



我为这个问题编写代码。

https://codeforces.com/contest/1744/problem/B

对于下面给出的输入,我的代码可以完美地工作,

输入:

1
1 1
1
1 1

输出:

2

输入:

1
3 3
1 2 4
0 2
1 3
0 5

输出:

11
14
29

输入:

1
6 7
1 3 2 4 10 48
1 6
0 5
0 4
0 5
1 3
0 12
0 1

输出:

80
100
100
100
118
190
196

但是对于这个输入:

1
6 7
1000000000 1000000000 1000000000 11 15 17
0 17
1 10000
1 51
0 92
0 53
1 16
0 1

输出应该是这样的:

3000000094
3000060094
3000060400
3000060952
3000061270
3000061366
3000061366

但是我的代码给出了一些垃圾值或者错误的输出,这段代码是:

-1294967202
-1294967202
-1294906896
-1294906344
-1294906026
-1294905930
-1294905930

我不明白主要问题在哪里。请帮我解决这个问题。这是我的代码。如果你发现问题,请帮我解决。提前感谢……

#include<stdio.h>
int odd_even_incre(long long a[], int x, int y,int n)
{
int i,j;
long long sum=0;
if(x%2==0){
for(i=0; i<n ;i++){
if(a[i]%2==0){
a[i]= a[i]+y;
}
sum = sum+a[i];
}
}
else{
for(i=0; i<n ;i++){
if(a[i]%2!=0){
a[i]= a[i]+y;
}
sum = sum+a[i];
}
}
return sum;
}
int main()
{
int n,q,t, i,j,x,y;
long long a[100000],result;
scanf("%d", &t);
for(i=0; i<t; i++)
{
scanf("%d %d", &n, &q);
for(j=0 ; j<n ; j++)
{
scanf("%lld", &a[j]);
}
for (j=0; j<q; j++)
{
scanf("%d %d", &x, &y);
result = odd_even_incre(a,x,y,n);
printf("%lldn",  result);
}
}
return 0;
}

我已经修好了。它将会是

long long  odd_even_incre(){}

不是

int odd_even_incre(){}

就是这样。谢谢大家

相关内容

  • 没有找到相关文章

最新更新