pta题库答案c语言输入两个正实数,将其整数部分交换后输出,结果保留2位小数。 输入格式: 输入2个实数A和B。 输出格式: 输出交换整数部分之后的两个实数。数据之间以一个“,”分隔。
时间: 2024-10-16 09:02:48 浏览: 54
为了在 C 语言中完成这个任务,你可以创建一个函数,接收两个 double 类型的变量作为输入,将它们的整数部分(通过乘以 100 取整再除以 100 转换)进行交换,然后保留两位小数输出。以下是相应的代码示例:
```c
#include <stdio.h>
// 函数声明
void swap_int_part(double *a, double *b);
int main() {
double A, B;
// 输入两个实数
printf("请输入两个正实数 A 和 B:");
scanf("%lf %lf", &A, &B);
// 检查输入是否为正数,如果不是则忽略并输出错误信息
if (A <= 0 || B <= 0) {
printf("输入的数必须为正。\n");
return 1;
}
// 交换整数部分
swap_int_part(&A, &B);
// 输出交换后的结果,保留两位小数
printf("%.2f, %.2f\n", A, B);
return 0;
}
// 实现整数部分交换的函数
void swap_int_part(double *a, double *b) {
int int_A = (int)(*a * 100);
int int_B = (int)(*b * 100);
// 将整数部分存到临时变量中,然后更新原值
*a = ((double)int_B / 100) + ((double)(*a - ((double)int_A / 100)) % 1);
*b = ((double)int_A / 100) + ((double)(*b - ((double)int_B / 100)) % 1);
}
```
阅读全文