| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:答案为什么是AGAAGAG
只看楼主 加入收藏
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
收藏
已结贴  问题点数:9 回复次数:7 
答案为什么是AGAAGAG
#include <stdio.h>
#include <stdlib.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);
 system("PAUSE");
 return 0;
}
有点想不通,前面两个AG还是可以理解的,后面接着的AAGAG没法理解。
搜索更多相关主题的帖子: include 
2011-07-06 22:13
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
这是要实现啥功能?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-07-06 23:12
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:2 
         本子上画个图就明了了的。每次s等于p1指向的字符,同时p1向前移一位,后面p1指向的位被赋值为p2指向的字符,同时p2向前移一位,后面再把p1指向的前一位赋值给p2,这个说起来有点绕口,画个头慢慢移一下就出来了的。
2011-07-06 23:13
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 3楼 loveshuang
不好意思,我按你所说的试了一下,可好像还是不明白。
当第一轮循环进行的时候,P1指向“ABCDEFG”中的A,P2指向G;
然后几轮的循环里,p1和p2指针分别指向什么呢,能不能麻烦你再跟我讲详细一点,因为还有一个限制性的条件:要当p1<p2的时候。
麻烦帮我列清楚一下在然后几轮的循环里,p1和p2指针分别指向什么呢。
多谢!
2011-07-07 05:50
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:4 
ABCDEFG
while(p1<p2)
{s=*p1++;*p1=*p2--;*p2=s;}
}

第一次循环  成为AGCDEAG   p1指向第二个字符G   p2指向倒数第二个字符A
第二次循环  成为AGADGAG   p1指向第三个字符A   p2指向倒数第三个字符G
第三次循环  先成为AGAGGAG(*p1=*p2--)  然后成为 AGAAGAG(*p2=s)  因为p1 和 p2 指向了同一个字符  所以进行了两次修改 然后p1=p2结束循环...

不管怎么走、总有一个终点...
2011-07-07 07:19
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 5楼 icysky
这题目对我这个初学者而言,呵呵。
不过谢谢,理解了,多谢。
2011-07-07 07:56
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:3 
回复 6楼 wxz11191975
其实你可以debug的   
程序都是调试出来的


比如    程序里面调试    比如你这个例子吧  你可以{s=*p1++;*p1=*p2--;*p2=s;puts(w);printf("|%c|%c\n",*p1,*p2);}  这样每次循环都会输出自己想要知道的信息等等


当然 还有IDE的调试

不管怎么走、总有一个终点...
2011-07-07 08:30
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
谢谢楼上的指点
2011-08-20 09:10
快速回复:答案为什么是AGAAGAG
数据加载中...
 
   



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

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