#include <iostream>
#include <cstring>
using namespace std;
void invert (char *a,int x,int y)
{
char t,*p,*q;
p=a+x;
q=a+y;
while(p<q)
{
t=*p;
*p=*q;
*q=t;
p++;q--;
}
}
int main()
{
char dt[13]="GoodBookNice";
int i=0,n=1;
while(i<8)
{
invert(dt,i,i+5);
cout << "第" << n++ << "次计算:" << endl;
for(int j=i;j<=i+5;j++)
{
cout << dt[j] << ',';
}
cout << endl;
i+=6;
}
cout << "共执行了" << i << "次计算。" <<endl;
return 0;
}
这段代码输出结果是什么呀?为什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 逃离那片云 2021-11-22 13:43关注
输出结果:
第1次计算: o,B,d,o,o,G, 第2次计算: e,c,i,N,k,o, 共执行了12次计算。
讲一下为什么是这样的结果:
这个代码里面的invert函数的作用是,把字符数组的选定范围内的字符反转顺序
如,char a[6]="abcdefg";invert(a,0,6)的结果就是字符数组a内的数据被倒序,即gfedcba,是指字符数组内数据被倒序改动,而不是倒序输出。
主函数的功能就是调用了上面的倒序函数,照这样invert(dt,i,i+5);倒一次,前六个就被倒转,然后倒转的字符被输出。
i+6后,不满足循环条件,又invert(dt,i,i+5)倒转一次,这时候倒转的是dt[6]到dt[11],接着倒转的字符被输出,i再次+6;
满足条件跳出循环,输出一共i次计算,就是12次解决 无用评论 打赏 举报
悬赏问题
- ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥30 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物