用c语言写出从键盘上输入三个实数a,b,c的值,要求用指针变量作为函数参数,通过函数调用实现对三个数按从小到大(改变a,b,c的值)顺序排序。
时间: 2024-02-09 11:11:59 浏览: 67
可以使用以下代码实现:
```c
#include <stdio.h>
void sort(float *p1, float *p2, float *p3) {
float temp;
if (*p1 > *p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
if (*p1 > *p3) {
temp = *p1;
*p1 = *p3;
*p3 = temp;
}
if (*p2 > *p3) {
temp = *p2;
*p2 = *p3;
*p3 = temp;
}
}
int main() {
float a, b, c;
printf("请输入三个实数:");
scanf("%f %f %f", &a, &b, &c);
sort(&a, &b, &c);
printf("排序后的结果为:%.2f %.2f %.2f\n", a, b, c);
return 0;
}
```
这段代码中,我们先定义了三个实型变量a、b和c。然后通过scanf函数从键盘上输入它们的值。接下来,我们定义了一个sort函数,它的参数是三个指向float类型的指针变量p1、p2和p3。在sort函数中,我们通过比较指针变量指向的值的大小,交换它们的值,实现了对a、b和c的排序。最后在main函数中,我们调用sort函数,将a、b和c的地址作为参数传递给它。然后输出排序后的结果。需要注意的是,这个过程中a、b、c的值已经被改变。
阅读全文