给定x*y的表格,画出最大的菱形

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void check_count();
void combineNum(int x, int y, int z,int num);
void printDiamond(int x, int y);
int main() {
    printf("请输入表格尺寸:\n");
    int x, y;
    scanf("%d,%d", &x,&y);
    printf("x=%d,y=%d\n",x,y);
    printDiamond(x,y);
    return 0;
}

void printDiamond(int x,int y) {
    int i , j;
    bool status = true;

    for (i = 0; i < y; i++) {
        if (status) {
            for (j = 0; j < x; j++) {
                if ((i<(y + 1) / 2 && (j == ((x - 1) / 2 - i % ((y + 1) / 2)) || j == ((x - 1) / 2 + i % ((y + 1) / 2)))) || (i >= (y + 1) / 2 && (j == (x - 1) / 2 - (i - 2 * (i - (y - 1) / 2)) || j == (x - 1) / 2 + (i - 2 * (i - (y - 1) / 2))))) {
                    printf("*");
                    if (i != 0 && (i - 2 * (i - (y - 1) / 2)) == 0) {
                        status = false;
                    }
                }
                else {
                    printf("_");
                }

            }
        }
        else {
            break;
        }
        
        printf("\n");
    }
}

 

分别使用不同的值进行测试:

1.18*18

 

 2.19*19

 

 3.17*6

 

posted @ 2022-04-15 16:02  蛋混小  阅读(55)  评论(0)    收藏  举报