【发布时间】:2016-01-27 11:59:57
【问题描述】:
作为我必须编写的程序的一部分,我需要编写的函数之一应该检查数组是否有任何相同的相同数字,以及其中一个是否大于/等于给定数字.
给定的数字也是数组中数字的数量
这是我目前所拥有的:
int checkarray(int *arr, int num)
{
int check = num;
int check2 = num;
int *lor;
int *poi;
int *another;
another = arr;
lor = arr;
poi = arr;
int check3 = num;
for ( ; num > 1; num--) {
for ( ; check3 >= 0; check3--) {
if (*arr == *poi)
return 0;
poi++;
}
arr++;
poi = another;
}
for ( ; check2 > 0; check2--) {
if (*lor >= check)
return 0;
lor++;
}
return 1;
}
我知道我为函数创建了太多指针/int,但这不是问题..
如果我没记错的话,检查给定值的部分可以正常工作,所以我认为你可以忽略该部分(这是最后一个“for”循环)
我知道这应该很容易,但由于某种原因我无法让它工作......
编辑:
我举个例子:如果数组是 0 1 2 3 1,函数将返回 0,因为第二个和最后一个数字是相同的。如果给定数字是 5,并且其中一个数字大于或等于 5,例如 0 1 2 5 4,该函数也将返回 0。
否则,函数返回 1。
【问题讨论】:
-
你的问题不清楚。 “数组具有相同的任何相同数字,并且其中一个数字更大/等于给定数字”是什么意思。
-
我举个例子:如果数组是 0 1 2 3 1 函数将返回 0,因为第二个和最后一个数字是相同的。如果给定数字是 5,并且其中一个数字大于或等于 5,则该函数也将返回 0,例如 0 2 3 4 5
-
我格式化了你的代码。现在可能更容易找到问题..
-
请不要使用
l(小写L)作为变量名。它看起来太像数字1。您必须非常仔细地查看int check3 = l;的含义。 -
你能指出你得到的错误是什么/什么部分不工作