我正在用 C 编程。我必须创建一个名为 的函数count
,它计算比同一数组中的后续元素大多少倍。例如,如果我们有一个如下所示的主代码:
int main() {
int a1[] = { 5 };
int a2[] = { 1, 2, 3, 4, 5 };
int a3[] = { 5, 4, 3, 2, 1 };
int a4[] = { 1, 9, 3, 7, 5 };
int a5[] = { 7, 5, 6 };
printf("%d\n", count(a1, sizeof a1 / sizeof a1[0]));
printf("%d\n", count(a2, sizeof a2 / sizeof a2[0]));
printf("%d\n", count(a3, sizeof a3 / sizeof a3[0]));
printf("%d\n", count(a4, sizeof a4 / sizeof a4[0]));
printf("%d\n", count(a5, sizeof a5 / sizeof a5[0]));
return 0;
}
计数应返回以下内容:
0
0
4
2
1
我已经尝试过自己,但似乎我遇到了一个我不知道如何解决的错误。
int count(int a[], int i){
int k=0;
int j;
for (j=0; j<=i-1; j++){
if(a[j] > a[j+1])
k++;
}
return k;
}
但这给出了错误的输出:
0
1
5
3
2
有人可以在我的代码中发现错误,或者帮助我解决这个问题吗?