//注意:数组个数与最大数一致
#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-01-19 22:22:15 发布