【C系列5.11】指针专题之比身高 1996
Time Limit: 1 s Memory Limit: 32 MB
Submission:105 AC:65 Score:14.85
Description
a、b、c是三个好基友,有一天他们坐在一起比身高。他们希望聪明的你可以用指针来从矮到高排出他们的身高。
Input
输入包含多组测试数据,每组测试数据占一行。
一行有三个浮点数分别代表a、b、c的身高,每个数值大于160.0且小于等于190.0。
Output
对于每行输入的a、b、c的身高输出用指针排序后的身高结果,小数点后保留一位小数。
Samples
input:
160.0 166.4 163.2
output:
160.0 163.2 166.4
下附AC代码:
#include<stdio.h>
void swap(double *p1, double *p2) {
double p;
p = *p1;
*p1 = *p2;
*p2 = p;
}
int main() {
int i;
double a[3];
double *p1, *p2, *p3;
while (scanf("%lf", &a[1]) != EOF) {
for (i = 2; i <= 3; i++)
scanf("%lf", &a[i]);
p1 = &a[1];
p2 = &a[2];
p3 = &a[3];
if (a[1] > a[2])swap(p1, p2);
if (a[1] > a[3])swap(p1, p3);
if (a[2] > a[3])swap(p2, p3);
for (i = 1; i <= 3; i++) {
printf("%.1lf", a[i]);
if (3 != i)
printf(" ");
}
printf("\n");
}
return 0;
}