Lenguaje C de patrón de diamante de salida e implementación de Python

Tema:

  • Requisito, ingrese el ancho n del rombo , que representa el número de * en el lugar más ancho, por ejemplo, n = 7 en la figura siguiente
    Inserte la descripción de la imagen aquí

Implementación del lenguaje C

  • habilidad:
  • (1) Divida el rombo (como se muestra en la figura anterior) en triángulos superiores y realice triángulos invertidos.
  • (2) se encontraron en cada línea de la ley del espacio de salida con un asterisco *
#include<stdio.h>
int main()
{
    
    
	int n, m, c, i;
	printf("请输入*号的个数,代表菱形宽度:\n");
	scanf("%d", &n);
	//打印上三角形
	for(i=1; i<= (n + 1)/2; i++)
	{
    
    
		// 打印空格
		for(m=1; m<= (n + 1)/2 - i; m++)
		{
    
    
			printf(" ");
		}
		// 打印 *, 这里 *的个数 和行数是有关系的, 第i行就有  2*(i-1)+1 个 *
		for(c=1; c<=2*(i-1)+1; c++)
		{
    
    
			printf("*");
		}
		printf("\n");
	}

	// 下面再来一个循环,打印倒三角, 上三角和倒三角拼成一个 菱形
	for(i=1; i<(n/2 + 1); i++)
	{
    
    
		// 打印空格
		for(c=1; c<=i; c++)
		{
    
    
			printf(" ");
		}
		// 打印*号, 这里加入打印7个宽的菱形,这里倒三角是(表示*数) 5,3,1  ,所以 (n+1)/2 - i) 表示倒着的行号 3, 2, 1, 在利用 (行号*2 -1)的行数计算。
		for(m=1; m<=((n+1)/2 - i) * 2 -1; m++)
		{
    
    
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

implementación de python

  • La escritura es un poco desordenada, pero es tal cosa. Consulte la implementación del lenguaje C, la lógica interna no ha cambiado, solo la copió. Es solo que el lenguaje es diferente y el código es diferente cuando se implementa.
n = int(input("请输入菱形的宽度:"))
# 打印上三角
for i in range(1, int((n + 1)/2) + 1):
    print(" "*int(((n + 1)/2 - i)) , "*"*(2*(i-1)+1))

for i in range(1, int((n + 1)/2)):
    print(" "*i , "*"*((int((n+1)/2) - i) * 2 - 1))

# 1. 利用python字符串可以用 乘法运算符,省去两个for循环
# 2. 得到的结果是 浮点类型~,需要转换为int类型
print(type(5/3))
# 3. 另外需要注意的是,连个字符串用 , 连接,不能使用 + , 加号会使 第一个 空格没有

Supongo que te gusta

Origin blog.csdn.net/pythonstrat/article/details/112743240
Recomendado
Clasificación