程序填空题:利用指针进行3个数排序
请完善程序,实现以下程序功能:从键盘上输入3个整数,使用指针实现升序排序,最后输出结果。<br>
输入样例1:<br>
1 -6 99 <br>
输出样例1:<br>
-6 1 99 <br>
输入样例2:<br>
99 1 -6 <br>
输出样例2:<br>
-6 1 99 <br>
输入样例3:<br>
-6 99 1 <br>
输出样例3:<br>
-6 1 99 <br>
//本程序的基本算法:首先将3个数中最小的数存放在变量a中;然后,将次最小数存放在变量b中;
//变量c中存放的自然是最大数;至此,3个数按由小到大的顺序排好。
#include <stdio.h>
int main(void)
{int k;for(k=1;k<=6;k++){ //该循环用于自动阅卷,请考生忽略
int a,b,c,*p,*q,*r,t;
//指针变量p,q,r分别指向变量a,b,c
p=&a;
q=&b;
r=;
scanf("%d%d%d",p,q,r); //输入3个整数存入变量a,b,c中
if(*p>*q) //将变量a,b中较小的数存放在a中
{t=*p;
;
*q=t;
}
if() //将变量a,c中较小的数存放在a中
{t=*p;
*p=*r;
*r=t;
}
if(*q>*r) //将变量b,c中较小的数存放在b中
{;
*q=*r;
*r=t;
}
printf("%d %d %d\n",*p,,*r); //输出排好序的3个数
} //该循环用于自动阅卷,请考生忽略
return 0;
}
答案:
第1空:&c
第2空:*p=*q
第3空:*p>*r
第4空:t=*q
第5空:*q
输入样例1:<br>
1 -6 99 <br>
输出样例1:<br>
-6 1 99 <br>
输入样例2:<br>
99 1 -6 <br>
输出样例2:<br>
-6 1 99 <br>
输入样例3:<br>
-6 99 1 <br>
输出样例3:<br>
-6 1 99 <br>
//本程序的基本算法:首先将3个数中最小的数存放在变量a中;然后,将次最小数存放在变量b中;
//变量c中存放的自然是最大数;至此,3个数按由小到大的顺序排好。
#include <stdio.h>
int main(void)
{int k;for(k=1;k<=6;k++){ //该循环用于自动阅卷,请考生忽略
int a,b,c,*p,*q,*r,t;
//指针变量p,q,r分别指向变量a,b,c
p=&a;
q=&b;
r=;
scanf("%d%d%d",p,q,r); //输入3个整数存入变量a,b,c中
if(*p>*q) //将变量a,b中较小的数存放在a中
{t=*p;
;
*q=t;
}
if() //将变量a,c中较小的数存放在a中
{t=*p;
*p=*r;
*r=t;
}
if(*q>*r) //将变量b,c中较小的数存放在b中
{;
*q=*r;
*r=t;
}
printf("%d %d %d\n",*p,,*r); //输出排好序的3个数
} //该循环用于自动阅卷,请考生忽略
return 0;
}
答案:
第1空:&c
第2空:*p=*q
第3空:*p>*r
第4空:t=*q
第5空:*q