一道C++编程题

定义函数char*fun(char*str),依次互换字符串str中前后对应奇数位置上的元素,并在函数中分别输出原字符串和执行互换操作后的字符串。例如,原字符串为"ggo... 定义函数char *fun(char *str),依次互换字符串str中前后对应奇数位置上的元素,并在函数中分别输出原字符串和执行互换操作后的字符串。例如,原字符串为"ggoi romndno",执行操作后的字符串为"good morning" 展开
 我来答
White_MouseYBZ
2018-10-28 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6587万
展开全部
//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
char *fun(char *str){
int i,j;
for(j=0;str[j];j++);
--j = j&1 ? j : j-1;
for(i=1;i<j;i+=2,j-=2)
str[i]^=str[j],str[j]^=str[i],str[i]^=str[j];
return str;
}
int main(int argc,char *argv[]){
char s[]="ggoi romndno";
cout << fun(s) << endl;
return 0;
}

运行结果:

听不清啊
高粉答主

2018-10-28 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include <stdio.h>
int main()
{int i,j;
 char c,s[200];
 gets(s);
 for(j=0;s[j];j++);
 if(j%2==0)j--;
 for(i=1;i<j;i+=2,j-=2)
 {c=s[i]; s[i]=s[j]; s[j]=c;}
 printf("%s\n",s);
 return 0;
}
追问
大佬又碰见你了😂
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
么诶节奏
2020-04-21 · TA获得超过624个赞
知道小有建树答主
回答量:772
采纳率:100%
帮助的人:36.6万
展开全部

#include <iostream>

using namespace std;


int search(int* p1, int n, int* p2);

void print(int* p, int n);

int main()

{

int arr1[10] = {1,2,3,4,5,6,7,8,9,10};

int arr2[] = { 0 };

int count = search(arr1, 10, arr2);


print(arr1, 10);

print(arr2, count);


system("pause");

}


int search(int* p1, int n, int* p2)

{

int result = 0;

for (int i = 0; i < n; i++)

{

if (p1[i] % 2 != 0)

{

p2[result] = p1[i];

result++;

}

}

return result;

}


void print(int* p, int n)

{

for (int i = 0; i < n; i++)

{

cout << p[i];

}

cout << endl;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9308069
2018-10-28 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1912万
展开全部

看了接口有返回值,就不敢直接动输入

用了复制和内存释放,然而我想多了...

#include <string.h>
char *fun(char *str){
   int i,len=strlen(str);
   char *text=(char*)malloc(sizeof(char)*(len+1));
   text[len]='\0';
   if(len%2==1){
      len--;text[len]=str[len];
   }
   for(i=0;i<len;i++)
      text[i]=i%2==0? str[i] : str[len-i];
   return text;
};
int main(){
   char str[]="ggoi romndno";
   char *text=fun(str);
   printf("%s => %s",str,text);
   free(text);
   return 0;
}
ggoi romndno => good morning
Process returned 0 (0x0)   execution time : 0.019 s
Press any key to continue.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
会思烤的猪
2018-10-28 · TA获得超过642个赞
知道小有建树答主
回答量:1010
采纳率:41%
帮助的人:77.4万
展开全部
手机下51自学网app!里面可以看到C++,或者java和其他语言方面的教学视频。
追问
能不能先把眼前问题解决了😂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式