gpt4 book ai didi

c - C 中整数的顺序颠倒

转载 作者:行者123 更新时间:2023-11-30 21:47:00 27 4
gpt4 key购买 nike

我目前正在学习 C 作为类(class)的一部分,我的任务是在不使用任何算术的情况下反转数字的顺序(任务的措辞)。我目前有这个:

#include <stdio.h> 

int main()
{
int n, reverse = 0;

printf("Enter a number to reverse\n");
scanf("%d", &n);

while (n != 0) {
reverse = reverse * 10;
reverse = reverse + n_10;
n = n / 10;
}

printf("Reverse of entered number is = %d\n", reverse);

return 0;
}

但是这个解决方案使用算术。我该如何改变它来完成任务?

从练习表中,“即使在三点
数字这种幼稚的方法很快就会变得难以用算术来管理(尝试一下!)。您的目标:设计 3 位数字的解决方案,而不使用任何算术。(提示:使用 scanf。)”

问题的措辞令人困惑,但要明确的是,问题是:如何反转数字的顺序,例如123456789 到 987654321,无需使用数学。所以解决方案是 scanf 读取数字并循环交换数字,如下答案。

最佳答案

您可以将其作为字符串读取。

int main()
{
char str[80];
fgets(str, 80, stdin);
strrev(str);
printf("%s\n", str);
}
void strrev(char *str)
{
char *end, tmp;

end = str + strlen(str) - 1;

for (; end > str; --end, ++str) {
tmp = *end;
*end = *str;
*str = tmp;
}
}

不知道你是否认为指针算术是“算术”

关于c - C 中整数的顺序颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416225/

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