由键盘输入任意一个自然数 N ,输出如下图:形如“沙漏”的由数字组成的图形。
回答不易 求求您采纳点赞哦 感激不尽
用程序来构建如下图形,首先初始化一个N x N的字符数组,并将所有单元格设置为字符空格。接下来,从中心开始向四周绘制数字,以把所有的单元格都填满,形成如下图形。
#include <stdio.h>
int main(void) {
int n;
printf("Input N:\n");
scanf("%d", &n);
char arr[n][n];
int i, j;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
arr[i][j] = ' ';
}
}
int startRow = 0;
int startCol = 0;
int number = 1;
while(number <= (2*n-1)) {
if(number <= n) {
for(i=startRow; i<(n-startCol); i++) {
arr[i][startCol] = (char)(number + 48);
}
startCol++;
}
else {
for(i=startCol; i<(n-startRow); i++) {
arr[n-startRow-1][i] = (char)(number + 48);
}
startRow++;
}
number++;
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%c", arr[i][j]);
}
printf("\n");
}
return 0;
}
以下是在 JavaScript 中实现的代码示例:
```javascript
function hourglass(n) {
for (let i = 1; i <= n; i++) {
let spaces = " ".repeat(n - i);
let numbers = "".padStart(2 * i - 1, i);
console.log(spaces + numbers + spaces);
}
for (let i = n - 1; i >= 1; i--) {
let spaces = " ".repeat(n - i);
let numbers = "".padStart(2 * i - 1, i);
console.log(spaces + numbers + spaces);
}
}
const N = 7;
hourglass(N);
上面的代码实现了输入自然数 N ,并输出形如沙漏的图形。
```