| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 663 人关注过本帖
标题:[字符串处理的函数]这题的思路???
只看楼主 加入收藏
ak47my
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:229
专家分:0
注 册:2005-12-2
收藏
 问题点数:0 回复次数:5 
[字符串处理的函数]这题的思路???
#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);
}

这道题看的我头都大了。最后输出的是:AGAAGAG

为什么只有A和G啊

哪位大大能不能把他运行的思路写下。。。。。小弟实在是看不懂这个

[此贴子已经被作者于2006-1-12 13:56:36编辑过]

搜索更多相关主题的帖子: 函数 思路 字符 
2006-01-12 13:56
大法师之杖
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-1-11
收藏
得分:0 

当你第一次循环的时候,s=*p++,s=a[0]=A了,p1向后移一位到a[1],*p1=*p2--,也就是a[1]=G了,p2向前移了一位,*p2=s,也就是a[5]=A,第一次循环也就变成了:AGCDEAG

当你第二次循环的时候,s=*p++,也就是s=a[1]=G了,p1向后移一位到a[2],*p1=*p2--,也就是a[2]=a[5]=A了,p2向前移一位,*p2=s,也就是a[4]=G.第二次循环也就变成了:AGADGAG.

当你第三次循环的时候,s=*p1++,也就是s=a[2]=A了,p1向后移一位,*p1=*p2--,a[3]=a[4]=G了,p2向前一位,*p2=s,也就是a[3]=A了,第三次循环也就变成了:AGAAGAG

当再次进入循环的时候,由于p1=p2,不符合条件,退出循环.

[此贴子已经被作者于2006-1-12 14:35:00编辑过]

2006-01-12 14:33
martinmcx
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-12-26
收藏
得分:0 

在fun()内部处理a[]过程:
初次循环:s='A',p1=a+1,a[1]='G',p2=a+5,a[5]='A' 即 AGCDEAG
二次循环:s='G',p1=a+2,a[2]='A',p2=a+4,a[4]='G' 即 AGADGAG
三次循环:s='A',p1=a+3,a[3]='G',p2=a+3,a[3]='A' 即 AGAAGAG
此时,p1=p2跳出循环。
2006-01-12 14:42
martinmcx
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-12-26
收藏
得分:0 

呵呵,我说刚才怎么IE不动了,原来有大哥正在发。
本来正在看单位的工资册,看见这个问题费了点儿时间,没想到还没赶上沙发?!
浪费脑细胞了。

[此贴子已经被作者于2006-1-12 14:47:35编辑过]

2006-01-12 14:43
ak47my
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:229
专家分:0
注 册:2005-12-2
收藏
得分:0 




---------------------------------------
A B C D E F G
g *p2
A

A G C D E A G
s=*p1++; *p1=*p2--; *p2=s;

s = a -> *p1++ = b

*p1=*p2--; -> b = g -> *p2-- = f

*p2=s; -> f =a

这样就清楚多了。。呵呵。。。谢过大大


提问:回答: 不提问怎么回答? 提问不清楚怎么回答?
2006-01-12 14:56
ak47my
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:229
专家分:0
注 册:2005-12-2
收藏
得分:0 


呵呵。如果考试也考这么难就砸了。。。再次谢过!!!

提问:回答: 不提问怎么回答? 提问不清楚怎么回答?
2006-01-12 14:58
快速回复:[字符串处理的函数]这题的思路???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042044 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved