TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
 
- 积分
- 2345
|
题目
解决代码及点评
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 23. 两个乒乓球队进行比赛,各出三人,甲队为A、B、C三人,乙队为X、Y 、Z三人,
- 已知抽签决定比赛名单。有人向队员打听比赛的名单, A说他不和 X比,C说他不和 X、Z比,
- 请编程序找出三对赛手的名单
-
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- void Myswap(char * arr,int num,int num2)
- {
- char c=arr[num];
- arr[num]=arr[num2];
- arr[num2]=c;
- }
- //字符进行全排列,然后将排列出来的结果,根据条件剔除
- void swap23(char * arr,const char *brr,int length,int n)
- {
- if (length==n+1)
- {
- bool flag=true;
- for (int i=0;i<4;i++)
- {
-
- if (arr=='A'&&brr=='X')
- {
- flag=false;
- break;
- }
- else if (arr=='C'&&(brr=='X'||brr=='Z'))
- {
- flag=false;
- break;
- }
-
-
- }
- if (flag==true)
- {
- for (int m=0;m<length;m++)
- {
- printf("%5c---%5C\n",arr[m],brr[m]);
- }
- printf("\n\n\n");
- }
-
- }
- else
- {
- for (int i=n;i<length;i++)
- {
- Myswap(arr,i,n);
- swap23(arr,brr,length,n+1);
- Myswap(arr,i,n);
- }
- }
-
- }
- void main()
- {
- char arr[4]="ABC";
- char brr[4]="XYZ";
- swap23(arr,brr,3,0);
- system("pause");
- }</pre><br><br><br></pre>
|
|