我正在尝试创建一个程序,如下所示:要求用户输入数组的长度。然后创建数组并用随机数填充,其长度是用户在开头指定的数组。之后,我必须创建一个名为getEvenNumbers
的函数,在其中我确定数组中的哪些数字是偶数。完成后,我int main
调用getEvenNumbers
并打印找到的所有偶数。这是我到目前为止的代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void getEvenNumbers(int *, int *);
int main()
{
int i, j, k, N, w, size, *tab, *tabPtr = 0, *sizePtr = 0;
printf("Enter the desired length of the array: ");
scanf("%d", &N);
size = N;
sizePtr = &size;
tab = (int *)malloc(sizeof(int)*size);
srand(time(0));
for(i = 0; i < size; i++)
{
j = rand();
tab[i] = j;
}
tabPtr = &tab[0];
printf("The array created is:\n");
for(k = 0; k < size; k++)
printf("%d\t", *(tabPtr+k));
printf("\n\n");
getEvenNumbers(tabPtr, sizePtr);
printf("The pair numbers are:\n");
for(w = 0; w < *sizePtr; w++)
printf("%d\t",*(tabPtr+w));
return 0;
}
void getEvenNumbers(int *tab, int *sizePtr)
{
int i = 0, w = 0;
for(i = 0; i < *sizePtr; i++)
{
if(tab[i]%2 == 0)
{
tab[w] = tab[i];
w++;
}
}
}
我已经成功创建了任何给定长度的随机数组。但是,我正在努力返回该数组中的所有偶数。有人可以解释为什么这不会只返回偶数吗?
答案 0 :(得分:0)
编辑: 对不起,我完全忽略了你使用C而不是C#。我会尝试一下。你走了!
int[] getEvenNumbers(int numbers[], int count)
{
for (i = 0; i < count; i++)
{
if (numbers[i] % 2 == 0)
{
printf("%d \t", array[i]);
}
}
}