c++输出菱形

从键盘输入1个int型数据N,根据该数据,输出一个用*组成的菱形,这个菱形中最多一行的*的个数是所输入的整数N。

注意:第N行第一个*号前有一个空格。

输入

一个整数N,表示最多的一行 * 的个数。

输出

输出一个由*组成的菱形。
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*

#include<iostream.h>
#include<math.h>

main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
 printf(" ");
for(k=0;k<=2*i;k++)
 printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
 printf(" ");
for(k=0;k<=4-2*i;k++)
 printf("*");


printf("\n");
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2021-02-03
#include<iostream.h>
#include<math.h>
void main()
{
int n,t,b,k,j;
cin>>n;
t=(n+1)/2;
for(k=1;k<=n;k++){
b=abs(k-t);
for(j=1;j<=b+10;j++)
cout<<" ";
for(j=1;j<=2*(t-b)-1;j++)
cout<<"*";
cout<<endl;
}
}追问

输出跟我的图不一样啊

本回答被网友采纳
第2个回答  2013-12-08
#include<stdio.h>
main()
{
    int i,j,k;
    for(i=0; i<=3; i++)
    {
        for(j=0; j<=2-i; j++)
            printf(" ");
        for(k=0; k<=2*i; k++)
            printf("*");
        printf("\n");
    }
    for(i=0; i<=2; i++)
    {
        for(j=0; j<=i; j++)
            printf(" ");
        for(k=0; k<=4-2*i; k++)
            printf("*");
        printf("\n");
    }
}

第3个回答  2013-12-08
#include <stdio.h>
void main()
{
int i, j, k, n;
printf("请输入正整数n: ");
scanf("%d", &n);
while(n!=0) //设置循环,使程序可以反复输入。当n=0时,结束输入。。
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n-i; j++) //设置空格的输出,因为要是棱形,所以要输出空格
{
printf(" ");
}
for(k=1; k<=i; k++) //*号的输出
{
printf("* ");
}
printf("\n"); //i每加1,表示加一行,所以每行结束后要换行
}

for(i=1; i<=n; i++) //这段程序是下三角的输出
{
for(j=1; j<=i; j++) //当i=1时,即下三角的第1行,输出1个空格,i=2,时输出2个。
{
printf(" ");
}
for(k=n-i; k>0; k--) //因为是下三角,每行的*比上一行的少,所以,k是递减的
{
printf("* ");
}
printf("\n");
}
printf("请输入正整数n: "); //完成一次完整的输出后,再次要求输入n,这样就可以实现循环了。
scanf("%d",&n);

}
}追问

注意:第N行第一个*号前有一个空格

追答

空格自己加上呀!........