第二练习怎么做
1190查看
QQ2477525162
2015-05-07 23:05

第二练习怎么做的,做出来 这个 * * *** *** * *** *样子

全部回复(2)
flyboy
2015-05-08 07:28

百度一下,以下是答案

#include<stdio.h>

void main()
{
        int i,j,n=7; //声明i为要打印的行数,j是控制输出打印空格和星星,n是菱形为菱形的高
        for(i=1;i<=n/2+1;i++) //先打印上半部分,如果奇数输入的是5,那么上面就会显示3行,以此类推
        {
                for(j=1;j<=n-i;j++) //打印空格
                {
                    printf(" ");
                }
                for(j=1;j<=2*i-1;j++)//打印星星
                {
                        printf("*");
                }
                printf("\n");
         }

        for(i=n/2;i>=1;i--) //n已经明确了,打印下半部分,如果n为5,那么下半部分显示两行,以此类推
        {
                 for(j=1;j<=n-i;j++) //打印空格
                {
                    printf(" ");
                }

                for(j=1;j<=2*i-1;j++)//打印星星
                {
                        printf("*");
                }
                printf("\n");
        }
}
copy
回复
flyboy
2015-05-08 08:55

答案不止一种,最好能自己做一份出来,比如观察数字的递增或递减

空格个数  星星个数

4           1
3           3
2           5
1           7

2           5
3           3
4           1
copy
#include<stdio.h>
void main()
{
        int n=7;    //n为菱形的高,
        int i,j,k;  //i为当前需要打印的星星个数,j为当前需要打印的空格个数,k是计数器
        
        j=n/2+1;
        for(i=1;i<=n;i+=2) //先打印上半部分
        {
                for(k=1;k<=j;k++) //打印空格
                {
                    printf(" ");
                }
                for(k=1;k<=i;k++)//打印星星
                {
                        printf("*");
                }
                printf("\n");
                j--;
        }

        j=2;
        for(i=n-2;i>=1;i-=2) //打印下半部分
        {
                for(k=1;k<=j;k++) //打印空格
                {
                    printf(" ");
                }
                for(k=1;k<=i;k++)//打印星星
                {
                        printf("*");
                }
                printf("\n");
                j++;
        }
}
copy
回复
你的回复