打印实心菱形

本文介绍了一段使用C语言编写的程序,该程序能够根据用户输入的整数大小,输出一个由星号(*)组成的金字塔形状。通过两个嵌套的for循环实现上半部分和下半部分的打印,并利用空格和星号的不同组合来形成特定的图形。

#include <stdio.h>


int main()
{
int i,j;
int n;
printf("Enter a jishu:");
scanf("%d",&n);
for(i=1;i<=n/2+1;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
   }
for(i=n/2;i>=1;i--)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}






    return 0;
}
以下是几种使用C语言打印实心菱形的代码示例: ### 示例一 ```c #include <stdio.h> int main() { int i, j, k, n; scanf("%d", &n); // 输出上半菱形 for(i = 1; i <= n; i++) { for(k = 1; k <= n - i; k++) printf(" "); for(j = 1; j < 2 * i; j++) printf("*"); printf("\n"); } // 输出下半菱形 for(i = n - 1; i >= 1; i--) { for(k = 1; k <= n - i; k++) printf(" "); for(j = 1; j < 2 * i; j++) printf("*"); printf("\n"); } return 0; } ``` 此代码通过用户输入`n`来控制菱形的大小,使用两个`for`循环分别打印菱形的上半部分和下半部分。上半部分的行数从1到`n`,每行的空格数逐渐减少,`*`号数逐渐增加;下半部分的行数从`n - 1`到1,每行的空格数逐渐增加,`*`号数逐渐减少[^3]。 ### 示例二 ```c #include<stdio.h> int main() { int i = 0; // i控制第几行 int j = 0; // j控制每一行空格的循环次数 int k = 0; // k控制每一行*的循环次数 for (i = 1; i <= 4; i++) { // 将图形分为两部分,前四行(第一部分) for (j = 1; j <= 4 - i; j++) { // 打印第i行的空格数 printf(" "); } for (k = 1; k <= 2 * i - 1; k++) { // 紧接着打印第i行的*数 printf("*"); } printf("\n"); // 第i行完成,要换行,进入下一行的循环 } for (i = 1; i <= 3; i++) { // 后三行(第二部分) for (j = 1; j <= i; j++) { printf(" "); } for (k = 1; k <= 7 - 2 * i; k++) { printf("*"); } printf("\n"); // 打印完一行后换行 } return 0; } ``` 这段代码将菱形分为前四行和后三行两部分,分别通过`for`循环控制每行的空格数和`*`号数。前四行空格数逐渐减少,`*`号数逐渐增加;后三行空格数逐渐增加,`*`号数逐渐减少[^4]。 ### 示例三 ```c #include<stdio.h> #include<stdlib.h> int main() { int i, j, n, t; printf("Please Enter n:\n"); scanf("%d", &n); for (i = 1; i <= n; i++) { // 将菱形分为上下两部分,n控制上三角形行数 for (j = n - 1; j >= i; j--) { // 从上到下空格数依次减少 printf(" "); } for (j = 1; j <= 2 * i - 1; j++) { // 从上到下*号依次增加 printf("*"); } printf("\n"); // 换行 } t = 2 * n - 1; for (i = 1; i <= n - 1; i++) { // 控制下三角的行数(比上三角少一行) for (j = 1; j <= i; j++) { // 控制什么时候打印空格 printf(" "); } for (j = 1; j <= t - 2; j++) { // 算好本行有几个*号 printf("*"); } t = t - 2; // *号自上而下依次减少两个 printf("\n"); } system("pause"); return 0; } ``` 该代码先让用户输入`n`,然后将菱形分为上下两部分。上半部分通过循环控制空格数逐渐减少,`*`号数逐渐增加;下半部分通过变量`t`控制`*`号数逐渐减少,空格数逐渐增加[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值