gpt4 book ai didi

c - 如何使用指针算术反转数组中每个数字的数字

转载 作者:行者123 更新时间:2023-11-30 20:22:43 25 4
gpt4 key购买 nike

我尝试用 C 语言编写一个程序来反转数组中的所有数字,但它实际上并没有反转任何内容,所以我得到了未更改的数字。我想我的指针有问题。

这是我的代码:

#include <stdio.h>

void reverse(int *n) {
int number = *n, number2 = 0;

while (number!=0) {
number2 *= 10;
number2 += number % 10;
number /= 10;
}

*n = number2;
}

void ReverseDigits(int *p, int n) {
int i = 0;

while (i < n) {
reverse(&p);
p++;
i++;
}
}

int main() {
int array[3] = {123, 456, 789}, i = 0;

while (i < 3) {
ReverseDigits(array, 3);
i++;
}
return 0;
}

最佳答案

ReverseDigits中,变量p是一个int指针。当您执行 &p 时,您将获得一个指向 int 指针的指针。但是您的 reverse 函数只需要一个 int 指针,因此您对 reverse 的调用是错误的。简单地做

reverse(p);  // insteand of reverse(&p)

main 中,您不应在循环中调用 ReverseDigits,因为该函数已经循环数组(即传递的元素数量)。因此,跳过 while 并简单地执行:

int main() {
int array[3] = {123, 456, 789};

ReverseDigits(array, 3);

return 0;
}

关于c - 如何使用指针算术反转数组中每个数字的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38882435/

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