C语言指针,编写六行杨辉三角
时间: 2023-11-02 15:13:42 浏览: 40
以下是用指针编写的六行杨辉三角的C语言代码:
```
#include <stdio.h>
int main() {
int n = 6;
int triangle[n][n];
int *p = &triangle[0][0];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || i == j) {
*(p + i * n + j) = 1;
} else {
*(p + i * n + j) = *(p + (i - 1) * n + j - 1) + *(p + (i - 1) * n + j);
}
printf("%d ", *(p + i * n + j));
}
printf("\n");
}
return 0;
}
```
解释:
1. 定义一个大小为6x6的二维数组`triangle`,并定义一个指向该数组首元素的指针`p`。
2. 使用两个嵌套的循环来生成杨辉三角,外层循环控制行数,内层循环控制列数。
3. 使用指针访问二维数组中的元素,根据杨辉三角的规律计算每个元素的值。
4. 打印每个元素的值,每行结束后打印一个换行符。
相关问题
C语言用队列实现输出杨辉三角的程序
好的,以下是用C语言实现输出杨辉三角的队列程序:
```c
#include <stdio.h>
int main() {
int n, i, j;
int queue[100], front = 0, rear = 0; // 队列数组及队首和队尾指针
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
// 将1入队列
queue[rear++] = 1;
// 计算杨辉三角的每一行
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
// 首位数字为1,入队列
printf("%d ", 1);
} else {
// 中间数字为上一行的两个数字之和
queue[rear++] = queue[front] + queue[front + 1];
printf("%d ", queue[front] + queue[front + 1]);
front++; // 队首指针后移
}
}
printf("\n");
}
return 0;
}
```
如果您需要输出更多行杨辉三角,可以适当增加队列的大小。
杨辉三角形c语言程序利用指针
以下是利用指针实现杨辉三角形的C语言程序:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
int arr[n][n];
int *p = &arr[0][0];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
*(p + i * n + j) = 1;
} else {
*(p + i * n + j) = *(p + (i - 1) * n + j - 1) + *(p + (i - 1) * n + j);
}
printf("%d ", *(p + i * n + j));
}
printf("\n");
}
}
int main() {
int n = 5;
printPascalTriangle(n);
return 0;
}
```