查找数组中缺失的数字,并用C++代码实现 要求为:输入:多组数据,每组数据有两行,第一行为数组的长度n,第二行为数组的n个元素(元素之间用空格分隔),当n=0时输入结束。输出:对于每组数据分别输出一行,输出缺失的数据(元素之间用空格分隔),如果数据未缺失,输出Not Found。
时间: 2024-03-03 15:47:29 浏览: 75
好的,下面是C++代码实现:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
while (cin >> n && n != 0) {
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
sort(nums.begin(), nums.end());
int target = 1;
bool found = false;
for (int i = 0; i < n; i++) {
if (nums[i] == target) {
target++;
} else if (nums[i] > target) {
found = true;
while (target < nums[i]) {
cout << target << " ";
target++;
}
break;
}
}
if (!found) {
cout << "Not Found";
}
cout << endl;
}
return 0;
}
```
该程序通过循环读入多组数据,每组数据包括数组长度和数组元素,然后将数组排序,从1开始逐个查找,如果找到了就将目标值加1,如果发现当前位置已经大于目标值,则说明缺失了目标值,将缺失的目标值输出,并继续查找,直到找到大于目标值的元素或者查找完整个数组。如果查找完整个数组仍然没有找到缺失的目标值,则输出Not Found。
阅读全文