//注意:数组个数与最大数一致
#include<stdio.h>
#include<iostream>
#include<string.h>
int* findDisappearedNumbers(int* nums, int numsSize, int*returnSize) {
int *zss = (int *)malloc(sizeof(int)*numsSize);
int *zs = (int *)malloc(sizeof(int)*numsSize);
int i, j = 0;
for (i = 0; i < numsSize; i++)
zss[nums[i] - 1] = nums[i];
for (i = 0; i < numsSize; i++)
if (zss[i] <= 0 || zss[i]>numsSize)//随机数大小不确定
zs[j++] = i + 1;
*returnSize = j;//今天新学会地方
return zs;
}
int main()
{
int n=8,i=0;
//scanf("%d", &n);
int *nums = (int *)malloc(sizeof(int)*10);
for (i = 0; i < n; i++)
scanf("%d", &nums[i]);//指针要一个一个输入!!!
int returnSize=0;//这里先随便附一个值
int *result = (int *)malloc(sizeof(int)*n);
result = findDisappearedNumbers(nums, n, &returnSize);//在这里returnSize会在子函数里面被更改!!!
for (i = 0; i <returnSize; i++)//便于输入正确个数
printf("%d ", result[i]);//指针输出也要一个一个!!!
system("pause");
return 0;
}
Find All Numbers Disappeared in an Array
最新推荐文章于 2021-08-19 19:13:10 发布