打印空心菱形图案
题目:
编写一个函数`print_diamond(int n)`,根据给定的奇数`n`打印一个由星号(`*`)组成的菱形图案。`n`表示菱形的宽度和高度。
提示与要求:
使用循环控制输出空格和星号的数量。
使用if分两部分(上半部分和下半部分)输出菱形。
1、函数声明
#include <stdio.h>
int print_diamond(int n);
2、主函数
int main()
{
int n = 6.9; //测试,向下取整
//printf("请输入菱形的宽度和高度:");
//int = n;
//scanf("%d",&n);
print_diamond(n);
return 0;
}
3、函数定义
3.1 变量声明与换行
// 长度为n的菱形图案打印函数
int print_diamond(int size){
int i;//换行
int j1,j2;//外部空格
int k1,k2;//星号
int m1,m2;//内部空格
for(i=1;i<=2*size-1;i++){
printf("\n");
3.2输出
上半部分:(使用if分开上下✔)
1、空格(降序✔)(循环中✔)
2、星号(循环外✔)
3、空格(升序✔)(循环中✔)
4、星号(循环外✔)
if(i<=size){
for(j1=size;j1>i;j1--){
printf(" ");
}printf("*");
for(m1=1;m1<=2*i-3;m1++){
printf(" ");
}if(i!=1){printf("*");}
}
下半部分(else接下半部分):
1、空格(降序✔)(循环中✔)
2、星号(循环外✔)
3、空格(升序✔)(循环中✔)
4、星号(循环外✔)
else{
for(j2=size;j2<i;j2++){
printf(" ");
}printf("*");
for(m2=1;m2<=2*(size-2)+1-2*(i-size);m2++){
//寻找下半部分size与空格初始项的关系(递增)
printf(" ");
}if(i!=2*size-1){
printf("*");}
}
}
}
4、输出结果

5、吐槽
有没有大佬看一看,做的怎么样qwq。
5549

被折叠的 条评论
为什么被折叠?



