用C语言编写一个函数,用指针作为参数,分别得到双精度实型数据的整数部分和小数部分,并试运行,把运行结果一并告诉我
时间: 2023-02-25 12:04:28 浏览: 172
下面是一个示例代码:
```
#include <stdio.h>
#include <math.h>
void get_parts(double *num, int *int_part, double *frac_part) {
*int_part = (int)*num;
*frac_part = *num - (double)*int_part;
}
int main() {
double num = 123.456;
int int_part;
double frac_part;
get_parts(&num, &int_part, &frac_part);
printf("整数部分: %d\n", int_part);
printf("小数部分: %lf\n", frac_part);
return 0;
}
```
运行结果:
```
整数部分: 123
小数部分: 0.456000
```
说明:
- 在 `get_parts` 函数中,我们通过指针将双精度实型数据的整数部分和小数部分分别存储到两个不同的变量中。
- 在 `main` 函数中,我们将 `num` 的地址作为参数传递给 `get_parts` 函数,同时也将 `int_part` 和 `frac_part` 的地址作为参数传递。
- 在 `get_parts` 函数内部,我们利用了 `*` 运算符取出指针指向的值,并通过运算得出了整数部分和小数部分。
相关问题
用C语言编写一个函数,用指针作为参数,分别得到双精度实型数据的整数部分和小数部分,并试运行,把运行结果一并告诉我
下面是用C语言编写的函数,可以用指针作为参数,分别得到双精度实型数据的整数部分和小数部分:
```c
#include <stdio.h>
#include <math.h>
void split_double(double num, int* integer_part, double* decimal_part) {
*integer_part = (int)num;
*decimal_part = fabs(num - *integer_part);
}
```
这个函数接受一个双精度实型数据 `num` 和两个指向整型和双精度实型数据的指针。它首先将 `num` 的整数部分转换为整型并将其存储在 `integer_part` 指向的地址中,然后计算 `num` 的小数部分并将其存储在 `decimal_part` 指向的地址中。
下面是一个简单的测试程序,演示如何使用这个函数:
```c
int main() {
double num = 3.14159;
int integer_part;
double decimal_part;
split_double(num, &integer_part, &decimal_part);
printf("整数部分:%d\n", integer_part);
printf("小数部分:%f\n", decimal_part);
return 0;
}
```
输出结果为:
```
整数部分:3
小数部分:0.141590
```
可以看到,这个函数能够正确地将双精度实型数据的整数部分和小数部分分离出来,并且输出结果也是正确的。
c语言编写一个只有主函数的程序,功能是:输入一个实型数据后,分别输出其整数部分和 小数部分
```c
#include <stdio.h>
int main() {
double num;
printf("请输入一个实数:");
scanf("%lf", &num);
printf("整数部分为:%d\n", (int)num);
printf("小数部分为:%lf\n", num - (int)num);
return 0;
}
```