画出以下程序的函数调用关系图#include <stdio.h> void reverse(int a[], int l, int r) { int temp; while (l < r) { temp = a[l]; a[l] = a[r]; a[r] = temp; l++; r--; } } void rotate_left(int a[], int n, int m) { m = m % n; reverse(a, 0, m - 1); reverse(a, m, n - 1); reverse(a, 0, n - 1); } int main() { int n, m; scanf("%d %d", &n, &m); int a[n]; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } rotate_left(a, n, m); for (int i = 0; i < n; i++) { printf("%d", a[i]); if (i != n - 1) { printf(" "); } } return 0; }
时间: 2024-01-18 15:04:57 浏览: 14
以下是函数调用关系图:
```
+----------------------+ +----------------------+
| | | |
| main() | | rotate_left() |
| | | |
+----------------------+ +----------------------+
| |
| |
| |
+-----------+ +-----------------+
| | | |
| scanf() | | reverse() |
| | | |
+-----------+ +-----------------+
| |
| |
| |
+-----------+ +------------+
| | | |
| for() | | reverse() |
| | | |
+-----------+ +------------+
| |
| |
| |
+-----------+ +------------+
| | | |
| printf() | | reverse() |
| | | |
+-----------+ +------------+
```
其中,main() 函数调用了 rotate_left() 函数,rotate_left() 函数又分别调用了三次 reverse() 函数。同时,main() 函数还调用了 scanf() 函数来读取输入的数据,以及一个 for() 循环来读取和输出数组元素。