- /******************************************************************************
- 14. 有黑白棋子各有N个(分别用*和O代替),按下图方式排列
- ***...***OOO...OOO
- N个黑棋 N个白棋
- 允许将相邻两个棋子互换位置,最后使队形成黑白交替排列,试编程实现该操作。
- ******************************************************************************/
- #include <stdio.h>
- #include <malloc.h>
- //显示棋子
- void PrintChess(char* chess, int size)
- {
- int i;
- for(i=0; i<size; i++)
- {
- printf("%3c",chess[i]);
- }
- printf("/n");
- }
- void main()
- {
- int i,k;
- int n;
- char* chess;
- printf("请输入一个正整数N: ");
- scanf("%d",&n);
- //申请空间
- chess = (char*)malloc(2*n*sizeof(char));
- //初始化
- for(i=0; i<n; i++)
- {
- chess[i] = '*';
- chess[i+n] = 'o';
- }
- //显示棋子
- PrintChess(chess,2*n);
- //过程
- for(i=n-1; i>=0; i--)
- {
- for(k=i; k<2*i; k++)
- {
- char temp;
- temp = chess[k];
- chess[k] = chess[k+1];
- chess[k+1] = temp;
- }
- }
- //显示棋子
- PrintChess(chess,2*n);
- //释放空间
- free(chess);
- }
练习14
最新推荐文章于 2024-07-06 20:07:06 发布