题解:
1,定义两个指针,一个指向第一份牌,一个指向第二份牌
2,通过空格统计牌数
3,根据牌数的奇偶数来确定要偏移的位数,从而来确定第二份牌指针的位置
4,交替打印两个指针所指向的字符
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <ctype.h>
int main()
{
// please write your code here
char cardArr[200] = {0};
gets(cardArr);
char *ptFirst = cardArr;
char *ptSecond = NULL;
int carNum = 0;
int i = 0;
int pianyi = 0;
int k = 0;
for(i=0; i<strlen(cardArr); i++)
{
if(cardArr[i] == ' ')
carNum++;
}
carNum += 1;
if(carNum % 2 == 0)
pianyi = carNum/2;
else
pianyi = carNum/2 + 1;
i = 0;
for(i=0; i<strlen(cardArr); i++)
{
if(cardArr[i] == ' ')
k++;
if(k == pianyi)
{
ptSecond = &cardArr[i+1];
break;
}
}
char *ptFirstEnd = ptSecond -1;
while(ptFirst < ptFirstEnd)
{
ptFirst[2] = '\0';
ptSecond[2] = '\0';
printf("%s %s ",ptFirst,ptSecond);
ptFirst += 3;
ptSecond += 3;
}
return 0;
}