gpt4 book ai didi

c - 以 double 从右(最右边)切换第 2 位和第 4 位数字

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

我的问题与此处提出的问题几乎相同:question

不同的是,我想从右边切换第 2 位和第 4 位数字,而不是像另一个问题中那样从左边切换。所以在我的例子中最右边的数字是 1。示例:283926.67 变为 282936.67。我该如何编码?

#include <stdio.h>
#include <stdlib.h>


int main() {


double number;

printf("Give a number: ");
scanf("%lf", &number);

//printf("%.4f", number);

char arr[sizeof(number)];
snprintf(arr, sizeof(number) + 1, "%f", number);

char ex = arr[1];
arr[1] = arr[3];
arr[3] = ex;

number = atof(arr);
printf("%.4f\n", number);


return 0;
}

最佳答案

您只需按照您提供的链接执行完全相同的操作即可:

int main() {
double A = 282936.67;

char str[50];
sprintf(str, "%f", A);

int dot = -1, i = 0;
//Finds the dot position
while (i != 50) {
if (str[i] == '.') {
dot = i;
break;
}
i++;
}

if (dot >= 4) {
char tmp = str[dot - 2];//Search from the dot position
str[dot - 2] = str[dot - 4];
str[dot - 4] = tmp;
}
//Convert your string to a float
A = atof(str);
printf("%.2f", A);

while (1);
return 0;
}

关于c - 以 double 从右(最右边)切换第 2 位和第 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40262746/

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