先上运行结果,后上程序代码。
运行结果:
输入7:
输入15:
输入25:
解题思路和代码详细讲解参见我公众号“C语言修仙”的如下文章:C语言能打印任意大小的菱形?当然!mp.weixin.qq.com
程序完整代码:
/**
* 代码功能:打印任意大小的菱形
*
* Author: 阿汤哥
* 微信公众号:C语言修仙
*/
# include
# include
/**
* fun() - 函数功能:打印任意大小的菱形
* @n :所需要打印菱形的行数
*/
void fun(int n)
{
int half = (n+1)/2;
//打印上半部分
for (int i = 1; i < half ; i++)
{
for (int j = 1; j <= n; j++)
{
if (abs(j-half) < i)
printf("*");
else
printf(" ");
}
printf("\n");
}
//打印中部
for (int j = 1; j <= n; j++)
printf("*");
printf("\n");
//打印下半部分
for (int i = 1 ; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if(abs(j-half) < half - i)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
int main()
{
int line;
printf("请输入一个奇数:\n");
scanf("%d", &line);
fun(line);
return 0;
}