代码块:
方法一:(用双层循环控制结构)
#include#include int main() { int i, j, k, n; char sign='Z'; printf("Please enter n: "); scanf_s("%d", &n); while(n<2||n>7){ printf("Error! Retry!nPlease enter n: "); scanf_s("%d", &n); } for(i=0; i 0; j--) printf(" "); printf("%c", sign--); if(i){ for(k=0; k<2*i-1; k++) printf(" "); printf("%c", sign--); } printf("n"); } for(i=n-1; i>0; i--){ for(j=0; j 方法二:(用函数结构设计)
#include#include void inputNum(int *num); void outputGraphic(int *num); int main() { int *num=(int*)malloc(sizeof(int)); inputNum(num); outputGraphic(num); free(num); system("pause"); return 0; } void inputNum(int *num){ printf("Please enter n: "); scanf_s("%d", num); while(*num<2||*num>7){ printf("Error! Retry!nPlease enter n: "); scanf_s("%d", num); } } void outputGraphic(int *num){ int i, j, k; char sign='Z'; for(i=0; i<*num; i++){ for(j=*num-i-1; j>0; j--) printf(" "); printf("%c", sign--); if(i){ for(k=0; k<2*i-1; k++) printf(" "); printf("%c", sign--); } printf("n"); } for(i=*num-1; i>0; i--){ for(j=0; j<*num-i; j++) printf(" "); printf("%c", sign--); if(i!=1){ for(k=0; k<2*i-3; k++) printf(" "); printf("%c", sign--); } printf("n"); } } 方法三:(极简写法)
#include#include int main() { int i, j, k, n, sign='Z'; printf("Please enter n: "); scanf_s("%d", &n); while(n<2||n>7){ printf("Error! Retry!nPlease enter n: "); scanf_s("%d", &n); } for(i=0; i 0; printf(" "), j--); printf("%c", sign--); if(i==0) continue; for(k=0; k<2*i-1; printf(" "), k++); printf("%c", sign--); } for(i=n-1; i>0; printf("n"), i--){ for(j=0; j



