pta题库答案c语言输入两个正实数,将其整数部分交换后输出,结果保留2位小数。 输入格式: 输入2个实数A和B。 输出格式: 输出交换整数部分之后的两个实数。数据之间以一个“,”分隔。 输入样例:
时间: 2024-10-14 09:04:51 浏览: 47
pta题库答案c语言.zip
这是一个C语言编程题目,主要要求是接收用户输入的两个正实数A和B,然后将它们的小数部分保持不变,只交换它们的整数部分,并将结果显示出来,保留两位小数。以下是解决这个问题的一种基本思路:
```c
#include <stdio.h>
#include <stdlib.h>
void swapIntPart(float* a, float* b) {
int intA = (int)a;
int intB = (int)b;
*a = ((double)*a - intA);
*b = ((double)*b - intB);
int temp = intA;
intA = intB;
intB = temp;
*a += intA;
*b += intB;
}
int main() {
float A, B;
// 输入两个实数
scanf("%f,%f", &A, &B);
// 检查是否都是正数
if (A >= 0 && B >= 0) {
// 交换整数部分
swapIntPart(&A, &B);
// 输出结果,保留2位小数
printf("%.2f,%.2f\n", A, B);
} else {
printf("Error: Both numbers must be non-negative.\n");
}
return 0;
}
```
**相关问题--:**
1. 这个程序如何处理负数输入?
2. 如果我想保留更多小数位,应该如何修改代码?
3. 对于精度损失,有没有更好的方法来实现这个功能?
阅读全文