c++怎么输入未知个数的整数数组
时间: 2023-05-13 12:04:40 浏览: 275
您可以使用动态内存分配来输入未知个数的整数数组。具体来说,您可以使用 malloc 函数来分配一个足够大的数组,然后使用 scanf 函数逐个读取输入的整数,直到遇到结束符(例如 -1)。以下是示例代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int* arr = malloc(sizeof(int)); // 初始分配一个元素的空间
int n = 0; // 当前数组大小
int x;
while (scanf("%d", &x) == 1 && x != -1) {
arr[n++] = x;
arr = realloc(arr, (n + 1) * sizeof(int)); // 动态扩展数组空间
}
// 现在 arr 中存储了输入的整数,大小为 n
free(arr); // 记得释放内存
return 0;
}
```
相关问题
c++解决未知数据个数存入数组
您好!要在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` 中的数据复制到新数组中,并在新数组的末尾添加新的数据。然后,我们释放原数组的内存,并将新数组赋值给原数组。循环结束后,我们打印出存储在数组中的数据,并释放数组的内存。
希望对您有所帮助!如果有任何问题,请随时提问。
C++ 如何定义未知大小的数组参量
未知大小的数组参数可以使用指针作为函数参数来传递。函数内部可以通过指针去访问数组元素。例如,这里有一个函数定义,可以接受未知大小的整数数组作为参数:
```
void processArray(int* arr, int size) {
for(int i=0; i<size; i++) {
cout << arr[i] << endl;
}
}
```
在调用这个函数时,可以传递一个整数数组和数组长度:
```
int myArray[] = {1, 2, 3, 4, 5};
processArray(myArray, 5);
```
这将输出数组中的每个元素。注意,因为这里使用了指针,所以必须同时传递数组长度。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)