程序填空题:利用指针进行3个数排序
请完善程序,实现以下程序功能:从键盘上输入3个整数,使用指针实现升序排序,最后输出结果。
//本程序的基本算法:首先将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中
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
//本程序的基本算法:首先将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中
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