用c++写一个求数组的所有子数组
时间: 2023-06-01 07:02:20 浏览: 156
以下是一个用C语言编写的程序,用于计算数组的所有子数组:
```
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4};
int n = sizeof(arr) / sizeof(arr[0]);
printf("All subarrays of the given array are:\n");
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
printf("{ ");
for (int k = i; k <= j; k++) {
printf("%d ", arr[k]);
}
printf("}\n");
}
}
return 0;
}
```
该程序首先定义了一个整型数组`arr`,并计算出其大小`n`。然后使用三重嵌套循环来遍历所有可能的子数组。外层循环控制子数组的起始下标,中间循环控制子数组的终止下标,内层循环则用于打印出该子数组的元素。最终,程序将所有子数组打印输出。
相关问题
用c++写一个遍历数组
的程序,输出数组中的每个元素。
以下是一个简单的用 C 语言编写的遍历数组的程序:
```
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序定义了一个整型数组 `arr`,并使用 `sizeof` 运算符计算出数组的长度,然后使用 `for` 循环遍历数组中的每个元素,并使用 `printf` 函数输出每个元素的值。
用c++写一个模板数组类
好的,下面是一个简单的模板数组类的代码示例:
```c++
template <typename T>
class Array {
private:
T* data; // 指向数组首元素的指针
int size; // 数组大小
public:
// 构造函数
Array(int s) : size(s) {
data = new T[size]; // 动态分配内存
}
// 拷贝构造函数
Array(const Array& other) : size(other.size) {
data = new T[size];
for (int i = 0; i < size; i++) {
data[i] = other.data[i];
}
}
// 析构函数
~Array() {
delete[] data; // 释放内存
}
// 重载下标运算符
T& operator[](int index) {
if (index < 0 || index >= size) {
throw std::out_of_range("Index out of range.");
}
return data[index];
}
// 获取数组大小
int getSize() const {
return size;
}
};
```
这个模板数组类可以用于存储任何类型的数据。你可以使用它来创建一个数组对象,然后通过下标运算符 `[]` 访问数组元素。同时,这个类还实现了拷贝构造函数,可以进行数组对象之间的拷贝,以及析构函数,可以释放动态分配的内存。