编写函数打印出10*10的杨辉三角形(使用指针变量作函数参数)。
时间: 2023-06-05 13:48:07 浏览: 169
好的,以下是函数的代码:
```c
void printYangHui(int *arr, int n) {
for (int i = ; i < n; i++) {
for (int j = ; j <= i; j++) {
if (j == || j == i) {
*(arr + i * n + j) = 1;
} else {
*(arr + i * n + j) = *(arr + (i - 1) * n + j - 1) + *(arr + (i - 1) * n + j);
}
printf("%d ", *(arr + i * n + j));
}
printf("\n");
}
}
```
这个函数使用指针变量作为参数,其中`arr`是一个指向整型数组的指针,`n`是数组的维度,这里是10。函数的作用是打印出10*10的杨辉三角形。
函数的实现使用了两层循环,外层循环控制行数,内层循环控制每一行的元素。在内层循环中,如果当前元素是第一个或最后一个,就将它的值设为1;否则,就根据上一行的元素计算出当前元素的值。最后,打印出当前元素的值,并在每一行结束后换行。
希望这个函数能够帮助到你!
相关问题
编写函数打印出10*10的杨辉三角形(使用指针变量作函数参数)
好的,下面是用中文回复的代码:
```
#include <stdio.h>
void yanghui(int *arr, int n) {
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
*(arr + i*n + j) = 1;
} else {
*(arr + i*n + j) = *(arr + (i-1)*n + j-1) + *(arr + (i-1)*n + j);
}
printf("%d ", *(arr + i*n + j));
}
printf("\n");
}
}
int main() {
int arr[10][10];
yanghui(&arr[0][0], 10);
return 0;
}
```
这个程序中,我们定义了一个 `yanghui` 函数,它接受一个指向整型数组的指针和数组的维度作为参数。在函数中,我们使用两个嵌套的循环来计算杨辉三角形中每个位置的值,并将其存储在数组中。最后,我们打印出整个数组,得到杨辉三角形。
在主函数中,我们定义了一个 10x10 的整型数组,并将其地址传递给 `yanghui` 函数。这样,函数就可以直接修改数组中的值,而不需要返回任何值。最后,我们返回 0,表示程序正常结束。
编写函数打印出10*10的杨辉三角形(使用指针变量作函数参数)。运行结果示例如下:
以下是杨辉三角形的代码:
```c
#include <stdio.h>
void printYangHui(int *arr, int n) {
int i, j;
for (i = ; i < n; i++) {
for (j = ; j <= i; j++) {
if (j == || j == i) {
*(arr + i * n + j) = 1;
} else {
*(arr + i * n + j) = *(arr + (i - 1) * n + j - 1) + *(arr + (i - 1) * n + j);
}
printf("%d ", *(arr + i * n + j));
}
printf("\n");
}
}
int main() {
int arr[10][10] = {};
printYangHui(&arr[][], 10);
return ;
}
```
输出结果:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
```