C语言求数组所有子数组
时间: 2024-04-26 18:26:09 浏览: 195
要求C语言求解一个数组的所有子数组,可以使用嵌套循环来实现。以下是一个示例代码:
```c
#include <stdio.h>
void printSubArrays(int arr[], int n) {
// 外层循环确定子数组的起始位置
for (int i = 0; i < n; i++) {
// 内层循环确定子数组的结束位置
for (int j = i; j < n; j++) {
// 打印子数组
for (int k = i; k <= j; k++) {
printf("%d ", arr[k]);
}
printf("\n");
}
}
}
int main() {
int arr[] = {1, 2, 3};
int n = sizeof(arr) / sizeof(arr[0]);
printf("所有子数组:\n");
printSubArrays(arr, n);
return 0;
}
```
该代码首先定义了一个函数 `printSubArrays`,该函数接受一个整型数组和数组的长度作为参数。在函数中,使用嵌套循环来打印数组的所有子数组。外层循环确定子数组的起始位置,内层循环确定子数组的结束位置,最内层循环用于打印子数组。在 `main` 函数中,我们定义了一个示例数组并调用 `printSubArrays` 函数来打印所有子数组。
运行该程序,将得到以下输出:
```
所有子数组:
1
1 2
1 2 3
2
2 3
3
```
这些输出是给定数组 `[1, 2, 3]` 的所有子数组。
阅读全文