想请教一个有关字符串的题目
#include <stdio.h>
#include <string.h>
void fun (char *w,int m)
{
char s,*p1,*p2;
p1=w;p2=w+m-1;
while (p1<p2)
{
s=*p1++;*p1=*p2--;*p2=s;
}
}
main ()
{
char a[]="ABCDEFG";
fun (a,strlen (a));
puts(a);
}
有四个答案 A. GFEDCBA B.AGADAGA C. AGAAGAG D. GAGGAGA
给出的正确答案是C 我觉得是A啊
有人能给我个解释吗?谢谢了
搜索更多相关的解决方案:
字符
----------------解决方案--------------------------------------------------------
s=*p1++;*p1=*p2--;*p2=s;
LZ仔细分这3句~~~++和--~~~不是随便用的哦````
----------------解决方案--------------------------------------------------------
不明白 ,请指教
----------------解决方案--------------------------------------------------------
while (p1<p2)
{
s=*p1++;*p1=*p2--;*p2=s;/*当执行完s=*p1++;时,p1的值已经加一了,再去执行第二条语句
,执行完*p1=*p2--;时,p2的值已经减了一,再去执行第三条语句*/
}
----------------解决方案--------------------------------------------------------
第一次循环结果: AG CDE AG
第二次循环结果: AGA D GAG
第三次循环结果: AGA A GAG
LZ再仔细分析一下```一句一句看``看慢点```每句每一个字是意思是什么`````
自己把问题分析清楚```回有很大收获的``
----------------解决方案--------------------------------------------------------
先多谢各位高手,再慢慢分析
----------------解决方案--------------------------------------------------------