我正试图解决这个问题: http://codeforces.com/problemset/problem/888/A
我写了以下代码:
#include <stdio.h>
int main(void)
{
int a, i, q, count;
scanf("%d ", &q);
int ar[q];
for (i = 0; i < q; i++)
{
scanf("%d ", &ar[i]);
}
for (i = 0; i < q; i++)
{
if (i != q - 1 && i != 0)
{
if (((ar[i] < ar[i + 1]) && (ar[i] < ar[i - 1])))
{
count++;
}
else if (((ar[i] > ar[i + 1]) && (ar[i] > ar[i - 1])))
{
count++;
}
}
}
printf("%d", count);
return 0;
}
当我用第一个测试用例运行程序时,它会输出随机数。 当我再次运行它时,会打印出不同的随机数。
我查了解决方案: https://github.com/Waqar-107/Codeforces/blob/master/A-set/888A.Local%20Extrema.py
这段代码不是我写的吗?为什么我的代码打印出奇怪的东西? 提前谢谢。
答案 0 :(得分:0)
You should initialize the variable count
to zero:
#include <stdio.h>
int main(void)
{
int a, i, q, count=0;
scanf("%d ", &q);
int ar[q];
for (i = 0; i < q; i++)
{
scanf("%d ", &ar[i]);
}
for (i = 0; i < q; i++)
{
if (i != q - 1 && i != 0)
{
if (((ar[i] < ar[i + 1]) && (ar[i] < ar[i - 1])))
{
count++;
}
else if (((ar[i] > ar[i + 1]) && (ar[i] > ar[i - 1])))
{
count++;
}
}
}
printf("%d", count);
return 0;
}