【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行完成,要换行\n,进入下一行的循环
	}
	
	for (i = 1; i <= 3; i++)//后三行(第二部分),和前四行同样的道理
	{
		for (j = 1; j <= i; j++)
		{
			printf(" ");
		}
		for (k = 1; k <= 7 - 2 * i; k++)
		{
			printf("*");
		}
		printf("\n");//打印完一行后记得换行\n
	}
	return 0;
}

本文为CSDN博主「认真学习编程的乖孩子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_62158278/article/details/122743887

本博客转载的内容仅供学习或记录笔记使用,若侵犯了您的合法权益,请联系我们,我们会及时进行处理。

  • 78
    点赞
  • 261
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 以下是用C语言输出一个空心菱形的示例代码: ``` #include <stdio.h> int main() { int rows, i, j, space, star; printf("请输入行数:"); scanf("%d", &rows); space = rows - 1; star = 1; for (i = 1; i <= rows * 2 - 1; i++) { for (j = 1; j <= space; j++) { printf(" "); } for (j = 1; j <= star; j++) { if (j == 1 || j == star) { printf("*"); } else { printf(" "); } } if (i < rows) { space--; star += 2; } else { space++; star -= 2; } printf("\n"); } return 0; } ``` 运行程序后,会提示用户输入行数。输入行数后,程序会输出一个空心菱形,其中空心部分用空格填充。 ### 回答2: 要输出一个空心菱形,可以使用C语言的循环和条件语句来实现。以下是一种可能的实现方式: ```c #include <stdio.h> int main() { int n, i, j; printf("请输入菱形的大小:"); scanf("%d", &n); // 输出上半部分 for (i = 1; i <= n; i++) { for (j = 1; j <= n - i; j++) { printf(" "); } printf("*"); for (j = 2; j < 2 * i - 1; j++) { printf(" "); } if (i != 1) { printf("*"); } printf("\n"); } // 输出下半部分 for (i = n - 1; i >= 1; i--) { for (j = 1; j <= n - i; j++) { printf(" "); } printf("*"); for (j = 2; j < 2 * i - 1; j++) { printf(" "); } if (i != 1) { printf("*"); } printf("\n"); } return 0; } ``` 以上代码中,首先通过`scanf`函数获取用户输入的菱形大小`n`。然后使用两个嵌套的循环,分别用于输出上半部分和下半部分的菱形。内层循环用于输出空格和星号,通过适当的条件语句来确定是否输出星号。最后通过循环结束后的换行符`\n`来换行输出。 希望以上回答对你有帮助,如果还有其他问题,请随时提问。 ### 回答3: 要输出一个空心菱形,可以使用嵌套循环控制符号的输出。以下是实现这个功能的C语言代码: ```c #include <stdio.h> int main() { int rows, i, j, space, star; printf("请输入菱形的行数:"); scanf("%d", &rows); space = rows - 1; star = 1; // 上半部分 for (i = 0; i < rows; i++) { for (j = 0; j < space; j++) { printf(" "); } for (j = 0; j < star; j++) { if(j == 0 || j == star - 1 || i == 0) { printf("*"); } else { printf(" "); } } printf("\n"); space--; star += 2; } // 下半部分 space = 1; star = rows * 2 - 3; for (i = 0; i < rows - 1; i++) { for (j = 0; j < space; j++) { printf(" "); } for (j = 0; j < star; j++) { if(j == 0 || j == star - 1 || i == rows - 2) { printf("*"); } else { printf(" "); } } printf("\n"); space++; star -= 2; } return 0; } ``` 以上代码首先获取用户输入的菱形行数,然后使用嵌套循环输出菱形的上半部分。在每一行中,先输出一定数量的空格,然后输出一定数量的星号。根据空心菱形的规则,如果是第一个星号、最后一个星号、或者是第一行,则输出星号,否则输出空格。上半部分输出完毕后,再使用类似的循环输出菱形的下半部分。过程中通过调整空格数量和星号数量来实现空心的效果。最后程序结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值