gpt4 book ai didi

c - 填空: Reverse the original string without asking other than what is given?

转载 作者:行者123 更新时间:2023-11-30 18:35:43 29 4
gpt4 key购买 nike

这是一个有趣的问题。

Fill in the blanks of while loop without using any extra variables or functions of what is already given in program to reverse the input string.

#include<stdio.h>
int main()
{
char ch[100];
scanf("%s",&ch);
int i=0;

while( /*condition */ )
{
/*
write code
*/
i++;
}

printf("\n\n Reversed String: %s",ch);
return 0;
}

编辑

我的方法:

while(i < printf("%s",ch)/2)
{
ch[i] = ch[printf("%s",ch)-1-i] + ch[i];
ch[printf("%s",ch)-1-i] = ch[i] - ch[printf("%s",ch)-1-i];
ch[i] = ch[i] - ch[printf("%s",ch)-1-i];
i++;
}

有更好的解决办法吗?

最佳答案

这个解决方案使用了老套的技巧,即在没有临时变量的情况下交换两个整数 X 和 Y:

int x = 7;
int y = 11;
x = x ^ y;
y = x ^ y;
x = x ^ y;
// x and y are now swapped.

这是完整的代码。

#include<stdio.h>
int main()
{
char ch[100];
scanf("%s",&ch);
int i=0;

while(i < strlen(ch)/2)
{
ch[i] = ch[i] ^ ch[strlen(ch)-i-1];
ch[strlen(ch)-i-1] = ch[i] ^ ch[strlen(ch)-i-1];
ch[i] = ch[i] ^ ch[strlen(ch)-i-1];

i++;
}

printf("Reversed String: %s\n",ch);
return 0;
}

这是我 5 年来编写的第一个直接 C 代码。

关于c - 填空: Reverse the original string without asking other than what is given?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45656128/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com