#include
#include
int main()
{
int n = 0; //输入行数
int i = 0;//控制行数
int m = 0;//空格数
int z = 0;//星号数
printf("请输入行数(奇数):");
scanf("%d",&n);
n=n/2;
for(i = 1;i<= n+1 ; i++)//上部分
{
for(m = 1;m <= n-i+1;m++) //刚开始为行数一半(取整)个空格,空格数随行数递减因此减i,又因为要保证第一次空格数正确加1调整
{
printf(" ");
}
for(z = 1 ;z<=(2i-1);z++)//星号数按奇数增长
{
printf("");
}
printf("\n");
}
for(i = 1;i<= n; i++)
{
for(m = 1;m <= i; m++)//空格数递增
{
printf(" ");
}
for(z = 1; z<=(2n-(2i-1));z++)//星号数奇数递减 取n=6;26-1,26-3,26-5递减。
{
printf("");
}
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0; //输入行数
int i = 0;//控制行数
int m = 0;//空格数
int z = 0;//星号数
printf("请输入行数(奇数):");
scanf("%d",&n);
char c;
printf("请输入要显示的字符:");
getchar();
scanf("%c",&c);
n=n/2;
for(i = 1;i<= n+1 ; i++)//上部分
{
for(m = 1;m <= n-i+1;m++) //刚开始为行数一半(取整)个空格,空格数随行数递减因此减i,又因为要保证第一次空格数正确加1调整
{
printf(" ");
}
for(z = 1 ;z<=(2*i-1);z++)//星号数按奇数增长
{
printf("%c",c);
}
printf("\n");
}
for(i = 1;i<= n; i++)
{
for(m = 1;m <= i; m++)//空格数递增
{
printf(" ");
}
for(z = 1; z<=(2*n-(2*i-1));z++)//星号数奇数递减 取n=6;26-1,26-3,26-5递减。
{
printf("%c",c);
}
printf("\n");
}
system("pause");
return 0;
}
获取用户输入的字符替换掉*就好了:
#include <stdio.h>
int main(void)
{
int n = 0,i = 0,j = 0;
printf("请输入菱形的行数");
scanf("%d",&n);
//打印菱形的上层
for(i=1;i<=n;i++)
{
for(j=i-n;j<n;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
//打印菱形的下层
for(i=n-1;i>=0;i--)
{
for(j=i-n;j<n;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
return 0;
}