给定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


浙公网安备 33010602011771号