输入一个整数,使用循环控制输出结构图形,如输入7时,第二张中间的空格怎么添加
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("1\n");
for (int i = 0; i < n - 2; i++)
{
printf("1");
for (int j = 0; j < i; j++)
printf(" ");
printf("%d\n", i + 2);
}
for (int i = 1; i <= n; i++) printf("%d", i);
return 0;
}
空格就是判断不是两头的数据,就输出空格替代中间的数字
不知道你这个问题是否已经解决, 如果还没有解决的话:可以使用两层循环来输出指定图形,具体步骤如下:
首先,获取用户输入的整数N,并创建一个N行N列的二维数组。
使用第一层循环控制行数,范围从0到N-1。
在第一层循环中,使用第二层循环控制列数,范围从0到N-1。在每一次循环中,判断当前位置是否为第二行的中心位置(即行数为1且列数为N/2-1),如果是,则在对应位置输出一个额外的空格;否则,输出一个普通的字符(比如"*")。
在第二层循环结束后,输出一个换行符,以开始下一行的输出。
下面是具体的代码实现:
#include <stdio.h>
int main() {
int N;
printf("请输入一个整数N:");
scanf("%d", &N);
// 创建N行N列的二维数组
char square[N][N];
// 使用两层循环输出指定图形
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == 1 && j == N/2-1) {
square[i][j] = ' ';
}
else {
square[i][j] = '*';
}
printf("%c ", square[i][j]);
}
printf("\n");
}
return 0;
}
这样,当用户输入N=7时,程序会输出一个由7行7列的正方形图形,其中第二行的中心位置有一个额外的空格。