#define SWAP(t,x,y) t=x, x=y, y=t;
#include <stdio.h>
int trans(float f){
int a = (int)f;
return a;
}
int main(){
printf("give 2 trans num\n");
{
float temp,x,y;
scanf("%f%f",&x,&y);
SWAP(temp,x,y);
// temp = trans(temp);
// x=trans(x);
// y=trans(y);
// trans(temp);
// trans(x);
// trans(y);
//上述两组调用trans函数均不影响打印
// printf("temp=%d, x=%d, y=%d",(int)temp,(int)x,(int)y);
printf("temp=%d, x=%d, y=%d\n",temp,x,y);
printf("temp=%f, x=%f, y=%f\n",temp,x,y);
printf("temp=%d, x=%d, y=%d\n",trans(temp),trans(x),trans(y));
printf("temp=%f, x=%f, y=%f\n",trans(temp),trans(x),trans(y));
//由打印结果,【提前赋值】temp,x,y不可行,猜测原因:
//整型赋给浮点会转换成浮点,故提前赋值,temp,x,y仍为浮点,无效转换
//SUM UP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//以上为worst解 勿用
// return temp,x,y;
}
return 0;
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//以下为 合理 解 cr. csdn
// #include<stdio.h>
// #define SWAP(t,x,y) t=x;x=y;y=t;
// int main()
// {
// float temp,a,b;
// printf("输入a和b:");
// scanf("%f%f",&a,&b);
// SWAP(temp,a,b);
// printf("a=%.2f\n",a);
// printf("b=%.2f\n",b);
// return 0;
// }