C语言输出数字菱形

Python026

C语言输出数字菱形,第1张

#include <stdio.h>

#include <math.h>

int main()

{int n,i,j

 scanf("%d",&n)

 printf("%*d\n",n,n)

 for(i=2-ni<n-1i++)

 {if(i)printf("%*c",abs(i),' ')

  for(j=nj>1+abs(i)j--)

    printf("%d",j)

  for(j<=nj++)

    printf("%d",j)

  printf("\n")

 }  

 if(n>1)printf("%*d\n",n,n)

 return 0

}

工具/材料

ubuntu+vim+gcc

01

首先,输入预处理指令#include <stdio.h>与函数原型void print(int n)。

其中,n表示行数

02

然后,对输入的n进行提前判断,若小于0或为偶数,则结束打印。

03

接着对上半个菱形进行输出(包括最长的行)。使用两层循环进行输出,分别控制行数与行内的位置。

04

接着对下半个菱形进行输出(包括最长的行)。也使用两层循环进行输出,分别控制行数与行内的位置。

05

对n=5与n=7进行输出测试,代码如下。

06

编译运行后的结果如下

07

以下是所有的代码:

#include <stdio.h>

void print(int n)

{

//判断n是否符合正奇数的要求

if(n <0 || n % 2 == 0)

//不符合则直接退出

return

//对上半个菱形输出

int i = 1,j = 1

//i控制行数

for(i = 1i <= (n + 1) / 2i++)

{

//j控制每一行的位置

//输出空格

for(j = 1j <= (n+1)/2 - ij++)

printf(" ")

//输出*

for(j = 1j <= 2 * i - 1j++)

printf("*")

//输出换行

printf("\n")

}

//输出下一半

//i控制行数

for(i = 1i <= n/2i++)

{

//j控制每一行的位置

//输出空格

for(j = 1j <= ij++)

printf(" ")

//输出*

for(j = 1j <= n -2 * ij++)

printf("*")

//输出换行

printf("\n")

}

}

//测试函数,测试n=5和n=7

int main()

{

printf("5\n")

print(5)

printf("7\n")

print(7)

return 0

}