c语言输出菱形

Python015

c语言输出菱形,第1张

工具/材料

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

}

#include <stdio.h>

int main()

{

int i,j,m,n

printf("请输入菱形的行数:")

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

while (scanf("%d", &n) != EOF &&n % 2 == 1)

{ //对上半个菱形输出

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

{

//i控制行数,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")

}

}

return 0

}