本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。
输入格式:
输入在一行中给出一个正的奇数n。
输出格式:
输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。
输入样例:
7
输出样例:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
结尾无空行
#include<stdio.h>
int main()
{
int n;//n为正奇数
scanf("%d",&n);
//上部分
int i,j,a;
for(i=1;i<=n/2+1;i++)//i行
{
for(j=1;j<=(n+1)/2-i;j++)//j列 与 i有关
{
printf(" ");//空格
}
for(a=1;a<=2*i-1;a++)
{
printf("* ");
}
printf("\n");//不能在输出* 后就换行,因为* 不止一个
}
//下部分
int q,w,e;
for(q=1;q<=n/2;q++)
{
for(w=1;w<=q;w++)
{
printf(" ");//第几行就有几个空格
}
for(e=1;e<=n-2*q;e++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
类似题目:画菱形
菱形是一种特殊的平行四边形,是四条边均相等的平行四边形。题目给出菱形的边长n,用*
画出菱形。如n=1,输出:
*
n=2,输出:
*
***
*
n=3,输出:
*
***
*****
***
*
那么,你能用程序来实现么?
输入格式:
输入菱形的边长n,1<n<100。
输出格式:
输出对应的用*
表示的菱形。
输入样例:
4
输出样例:
*
***
*****
*******
*****
***
*
代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);//菱形边长n
int i,j,k;
//上半部分
for(i=1;i<=n;i++)//一共n行
{
for(j=1;j<=n-i;j++)
{
printf(" ");//i行有n-i个空格
}
for(k=1;k<=2*i-1;k++)
{
printf("*");//i行有2*1-1个*
}
printf("\n");//一行输出后换行
}
//下半部分
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");//i行有i个空格
}
for(k=1;k<=2*n-1-2*i;k++)//最大一行共2*n-1个* ,则下半部分第i行有 2*n-1-2*i个*
{
printf("*");
}
printf("\n");
}
return 0;
}