C语言【问题描述】 打印一个如样例输出所示的拐形图案。 【输入形式】 一个整数n,表示图案的总行,1<=n<20 【输出形式】 一个图案 【样例输入】 6 【样例输出】 #include<stdio.h> #define N 20 void Fill(char (*a)[N],int n); int main() { char a[N][N]; int n; for(int x=0;x<N;x++) for(int y=0;y<N;y++) a[x][y]=' '; scanf("%d",&n); Fill(a,n); for(int x=0;x<n;x++) { for(int y=0;y<n;y++) printf("%c",a[x][y]); printf("\n"); } return 0; } void Fill(char (*a)[N],int n) { char ch='A'; int i,j; i=0; do { for(j=0;j<n;j++) { if(i>=j) *(a[i]+j)=ch+j; } }while(i<n); }
时间: 2023-12-03 09:47:29 浏览: 211
这是一个 C 语言程序,实现了打印一个拐形图案。程序的思路是在一个二维字符数组中填充对应位置的字符,然后以行为单位输出数组中的字符。
程序的主要函数为 `Fill` 函数,该函数接受一个二维字符数组和一个整数作为参数,表示数组的大小和拐形的高度。函数的实现思路是按照行的顺序,从上到下,依次填充对应位置的字符。填充的字符按照字母表的顺序递增,例如第一行填充的是 A 到 A+n-1,第二行填充的是 B 到 B+n-2,以此类推,直到第 n 行填充的是 A+n-1 到 A+2n-3。填充完成后,再将数组以行为单位输出即可。
程序的核心代码如下:
```c
void Fill(char (*a)[N], int n) {
char ch = 'A';
int i, j;
i = 0;
do {
for (j = 0; j < n; j++) {
if (i >= j)
*(a[i] + j) = ch + j;
}
i++;
ch++;
} while (i < n);
}
```
完整代码如下:
阅读全文