s1e21 指针 动动手的第0题
本帖最后由 LeaflLit 于 2021-10-18 22:52 编辑能帮忙修改一下吗 看不出来问题{:10_250:} 本帖最后由 jackz007 于 2021-10-18 23:28 编辑
【代码-1】:
#include <stdio.h>
int main(void)
{
int a , b , c , * d , * e , * f ;
printf("请输入三个数:") ;
scanf("%d%d%d" , & a , & b , & c) ;
d = (a < b && a < c) ? & a : (b < a && b < c) ? & b : & c ; // 指针 d 指向 a、b、c 中最小的那一个;
e = (b < a && a < c) ? & a : (b > a && b < c) ? & b : & c ; // 指针 e 指向 a、b、c 中数值第二大的那一个;
f = (a > b && a > c) ? & a : (b > a && b > c) ? & b : & c ; // 指针 f 指向 a、b、c 中最大的那一个;
printf("%d < %d < %d\n" , * d , * e , * f) ;
}
【代码-2】:
#include <stdio.h>
void swap(int * a , int * b)
{
int t ;
t = * a ;
* a = * b ;
* b = t ;
}
int main(void)
{
int a , b , c , d ;
printf("请输入三个数:") ;
scanf("%d%d%d" , & a , & b , & c) ;
if(a > b) swap(& a , & b) ; // 确保 a 最小(1)
if(a > c) swap(& a , & c) ; // 确保 a 最小(2)
if(b > c) swap(& b , & c) ; // 确保 b 比 c 小
printf("%d < %d < %d\n" , a , b , c);
} #include<stdio.h>
int main(void) {
int a, b, c;
int* d, * e, * f, * g;
printf("请输入三个数:");
scanf_s("%d%d%d", &a, &b, &c);
d = &a;
e = &b;
f = &c;
if (a > b)
{
g = d;
d = e;
e = g;
}
if (a > c)
{
g = d;
d = f;
f = g;
}
if (b > c)
{
g = e;
e = f;
f = g;
}
printf("d(%d) <= e(%d) <= f(%d)",
*d, *e, *f);
return 0;
}
页:
[1]