c++解决未知数据个数存入数组
时间: 2024-01-23 09:03:37 浏览: 34
您好!要在C++中解决未知数据个数存入数组的问题,可以使用动态内存分配。以下是一个简单的示例代码:
```cpp
#include <iostream>
int main() {
int* arr = nullptr; // 声明指向整数的指针,并初始化为nullptr
int size = 0; // 数组的初始大小
int num;
std::cout << "请输入数据,以-1结束:" << std::endl;
while (true) {
std::cin >> num;
if (num == -1) {
break; // 输入-1时结束循环
}
// 动态分配内存给数组
int* temp = new int[size + 1];
// 将原数组中的数据复制到新数组中
for (int i = 0; i < size; i++) {
temp[i] = arr[i];
}
temp[size] = num; // 将新数据添加到新数组的末尾
delete[] arr; // 释放原数组的内存
arr = temp; // 将新数组赋值给原数组
size++; // 数组大小增加1
}
std::cout << "输入的数据为:" << std::endl;
// 打印数组中的数据
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
delete[] arr; // 释放数组的内存
return 0;
}
```
这段代码中,我们首先声明了一个初始大小为0的指针 `arr`,用于存储输入的数据。然后,我们通过循环读取用户输入的数据,直到输入-1为止。在每次循环中,我们都会动态分配一个新的数组 `temp`,将原数组 `arr` 中的数据复制到新数组中,并在新数组的末尾添加新的数据。然后,我们释放原数组的内存,并将新数组赋值给原数组。循环结束后,我们打印出存储在数组中的数据,并释放数组的内存。
希望对您有所帮助!如果有任何问题,请随时提问。