找一个修改修改就行了呀
#include <stdio.h>
void PrintNumers(int line)
{
int i, j, k;
int space = 16;
// 上三角行循环,由于line与行数相关,故可直接使用line作为范围
for(i = 0; i < line; i ++)
{
// 输出空格,为了直观,故改空格为星形符号*
for(j = space; j > 0; j --)
printf(" ");
// 输出前一部分1,2,3……
for(k = 0; k < i + 1; k ++)
printf("%d",k + 1);
// 在当前基础上,重利用k的值,输出后一部分2,1,没0
for(k = k - 1;k > 0; k --)
printf("%d", k);
// 每输出完一行内容,就减去一个空位,也就是星形符号,以便下一行可以新增一个数字
space --;
// 每输出完一行就换行
printf("\n");
}
// 在当前基础上,重利用space的值,因为上一步最后space--了,所以这次利用需要对space加两次,若加一次则和上三角最后的行等长
space += 2;
// 下三角行循环
for(int i = line - 1; i > 0; i --)
{
// 输出空格,为了直观,故改空格为星形符号*
for(j = space; j > 0; j --)
printf(" ");
// 输出前一部分1,2,3……
for(k = 0; k < i; k ++)
printf("%d",k + 1);
// 输出后一部分2,1,没0
for(k = k - 1;k > 0; k --)
printf("%d", k);
// 每输出完一行内容,就增加一个空位,也就是星形符号,以便下一行可以减少一个数字
space ++;
// 每输出完一行就换行
printf("\n");
}
}
main(){
int a;
scanf("%d",&a);
PrintNumers(a);
}
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[]) {
printf("Please enter a number as integer: ");
int n;
if ((scanf("%d", &n) != 1) || (n<0 || n>9)) {
printf("Error in input!!!\n");
exit(EXIT_FAILURE);
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n - i; j++)
printf(" ");
for (int j = 1; j <= i; j++)
printf("%2d", j);
for (int j = i - 1; j >= 1; j--)
printf("%2d", j);
printf("\n");
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++)
printf(" ");
for (int j = 1; j <= n - i; j++)
printf("%2d", j);
for (int j = n - i - 1; j >= 1; j--)
printf("%2d", j);
printf("\n");
}
return 0;
}