Skip to content

Latest commit

 

History

History
56 lines (50 loc) · 914 Bytes

printf_star.md

File metadata and controls

56 lines (50 loc) · 914 Bytes

利用printf的变长参数输出N王后

*可以作为printf函数第一个参数中的占位符 例如 printf("%*.*f\n", 10, 4, 1234.56); //不输出10和4而输出1234.5600,它在输出字符串时也适用。 例如

for(int i=0;i<8;i++)
  printf("%.8s\n","-------Q-------"+i);```
输出:

-------Q ------Q- -----Q-- ----Q--- ---Q---- --Q----- -Q------ Q-------

现假设我们把各行王后的棋子位置存入一个数组,就可以输出图形了。


#include #include

void printq(int s[],int n) { for(int x=0;x<n;x++) printf("%.*s\n",n,"---------Q---------"+(10-n)+(int)round(log(s[x])/log(2))); } int main() { int s[10]={1,4,16,64,2,8,32}; //log(2,n)代表位置 printq(s,7);

int s1[10]= {2,8,32,1,4,16}; printq(s1,6); return 0; }

输出

------Q ----Q-- --Q---- Q------ -----Q- ---Q--- -Q-----

----Q- --Q--- Q----- -----Q ---Q-- -Q----