文章

34

粉丝

179

获赞

13

访问

184.8k

头像
浙江工商大学(2019上机题-打印菱形)
备考心情
发布于2022年2月26日 14:22
阅读数 5.4k

打印菱形,高度为奇数,这里的高度为总高度,所以最外层循环为 i<=(n+1)/2 (n/2向下取整)

1、分为上下两块打印

2、先打印空格,再打印*号

3、每行总的打印数为n,*号打印数为2*i-1(i为行数),那么空格数就是(n-(2*1-1))/2

4、下面那部分的打印相同,只是上面i值为1-(n+1)/2,下面是反过来的,唯一要注意的就是上下重叠的那行不需要重复打印,所以i为n/2

#include <iostream>
#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        if(n==0) break;
        for(int i=1;i<=(n+1)/2;i++){

            for(int j=1;j<=(n-2*i+1)/2;j++)
                printf(" ");
            for(int k=1;k<=2*i-1;k++)
                printf("*");
            printf("\n");

        }
        for(int i=n/2;i>=1;i--){
            for(int j=1;j<=(n-2*i+1)/2;j++)
                printf(" ");
            for(int k=1;k<=2*i-1;k++)
                printf("*");
            printf("\n");
        }
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发