如何在C中打印这个星形图案?
我想打印下面的图案,用户输入n和m(4和6),外边界应该用星星组成,里面应该用圆圈填充。
****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ******
我写的代码如下。 我做错了什么?
#include #include int main(void) { int n,i,j,k,m,n1; printf("enter table size and enter square size"); scanf("%d %d", &n, &n1); for (i = 0; i < n; i++) { for (j = 0; j < n1; j++) { for ( k = 0; k < n; k++) { for ( m = 0; m < n1; m++) { { if(i==0 || i==n-1) { printf("*"); } else if(j==0 || j==n-1) { printf("*"); } else { printf("o"); } } } printf(" "); } printf("\n"); } printf("\n"); } system("pause"); return 0; }
更正的代码是
#include #include int main(void) { int n,i,j,k,m,n1; printf("enter table size and enter square size"); scanf("%d %d", &n, &n1); for (i = 0; i < n; i++) { for (j = 0; j < n1; j++) { for ( k = 0; k < n; k++) { for ( m = 0; m < n1; m++) { { if(j==0 || j==n1-1) { printf("*"); } else if(m==0 || m==n1-1) { printf("*"); } else { printf("o"); } } } printf(" "); } printf("\n"); } printf("\n"); } system("pause"); return 0; }
您的索引变量执行以下操作:
|----------------n----------------------| |--m--| - ******* ******* ******* ******* ******* | *o ... | *o ... j *o ... | | -
所以基本上你必须打印*当j在每个正方形的第一行或最后一行或当m在正方形的第一行或最后一行(n1)时。
希望这可以帮助