gpt4 book ai didi

c - 将 1000 位数字与 10 位数字交换 (C)

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:56 25 4
gpt4 key购买 nike

例如,我正在尝试切换:输入 54321.987,然后 4 和 2 应该切换,所以输出将是 52341.987。 54321.777 应该变成 52341.777。如果它是 2345.777,它应该是 4325.777。任何低于我不关心的东西。但如果它像 888886543.777,则只有第二个和第四个数字应该从逗号前最右边的部分开始切换。所以它会变成 888884563.777

因此,正如 LearningC 所建议的,我正在尝试仅将 1000 位数字与 10 位数字进行交换。

但无论我尝试什么,我都会出错。我无法传递错误。我该怎么做?

到目前为止,我所拥有的实际有效的是:

   int main(int argc, char** argv) {
double x;
scanf("%lf", &x);

double tens = ((int) (x / 10)) % 10;
double thousands = ((int) (x / 1000)) % 10;

printf("%09.3f", x += (tens - thousands) * 990.0);
return 0;
}

上面的代码现在可以工作了。

最佳答案

首先,您必须确定这些数字。

你可以这样做

double tens = ((int)(x / 10)) % 10;
double thousands = ((int)(x / 1000)) % 10;

这使你能够做到

x = x - (tens * 10.0) - (thousands * 1000.0) + (tens * 1000.0) + (thousands * 10.0);

在原来的位置减去它们并以交换的方式重新添加它们。

您可以将其优化为

x = x + tens * (1000.0 - 10.0) - thousands * (1000.0 - 10.0);

再一次,这个给

x += (tens - thousands) * 990.0;

关于c - 将 1000 位数字与 10 位数字交换 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481597/

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