用C语言输出一个字母菱形

Python015

用C语言输出一个字母菱形,第1张

#include

"stdio.h"

void

main()

{

int

k=65,i

printf("请输入A~Z中任意一个字符,必须大写:\n")

char

c=getchar()

while(k<=(int)c)

{

for(i=0i<(k-65)*2+1i++)

printf("%c",k)

printf("\n")

k++

}

k=k-2

while(k>=65)

{

for(i=0i<(k-65)*2+1i++)

printf("%c",k)

printf("\n")

k--

}

}

//刚才试过了,可以的,只是注意输入的必须是大写。

#include <stdio.h>

int main()

{

printf("   a   \n")

printf("  aba  \n")

printf(" abcba \n")

printf("abcdcba\n")

printf(" abcba \n")

printf("  aba  \n")

printf("   a   \n")

getchar()

return 0

}

如下图,第一行和最后一行的a前后分别有3个空格,aba前后分别有2个空格,abcba前后分别有1个空格,abcdcba前后没有空格。

工具/材料

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

}