用c语言从键盘上输入三个实数a,b,c的值,要求用指针变量作为函数参数,通过函数调用实现对三个数按从小到大(改变a,b,c的值)顺序排序。
时间: 2024-02-09 15:11:58 浏览: 93
实验题第二题-函数指针与指针函数
好的,下面是用C语言从键盘上输入三个实数a,b,c的值,通过函数调用实现对三个数按从小到大顺序排序并改变a,b,c的值的代码:
```c
#include <stdio.h>
void sort(float *pa, float *pb, float *pc) {
float temp;
if (*pa > *pb) {
temp = *pa;
*pa = *pb;
*pb = temp;
}
if (*pa > *pc) {
temp = *pa;
*pa = *pc;
*pc = temp;
}
if (*pb > *pc) {
temp = *pb;
*pb = *pc;
*pc = temp;
}
}
int main() {
float a, b, c;
printf("请输入三个实数:\n");
scanf("%f %f %f", &a, &b, &c);
printf("排序前:\n%.2f %.2f %.2f\n", a, b, c);
sort(&a, &b, &c);
printf("排序后:\n%.2f %.2f %.2f\n", a, b, c);
return 0;
}
```
首先,我们定义了三个实型变量a、b和c。
然后,通过scanf函数从键盘输入三个实数,并将它们分别赋值给a、b和c。
接着,我们定义了一个sort函数,该函数的参数为三个指向浮点数的指针变量pa、pb和pc。在函数内部,我们利用了if语句和swap操作来实现对三个数的排序。最后,通过指针的引用,将排序后的结果写回到a、b和c中。
在主函数中,我们先通过printf函数输出排序前的a、b和c的值,然后调用sort函数对a、b和c进行排序,并再次通过printf函数输出排序后的a、b和c的值。
注意:在函数调用时,我们需要将a、b、c的地址通过指针传递给sort函数,因此需要在函数调用时在变量名前加上&符号。
阅读全文