- 心态问题
计算机系大佬太多,2个小时的测试许多同学花了一半时间就完成了试题。感觉受到了降维打击,甚至开始怀疑自己选择转专业是否正确。
后来和朋友交流了一下,给我的建议是:
- 如果他们都和平常人做的一样快,学那么久竞赛有什么用?
- 有的人最早交,但最后挂了。
其实,在自己的节奏上走好每一步就对, 别去受别人的干扰了。
不得不承认,做题过程中仍然有许多遗留问题需要逐一解决。C语言是程序设计的基础,也是专业的敲门砖,每一步都容不得马虎。
- 关于数据的转化
1)自动类型转化
signed意思为有符号的,也就是第一个位代表正负,剩余的代表大小,例如:signed int 大小区间为-128-127
unsigned意思为无符号的,所有的位都为大小,没有负数,例如:unsigned int 大小区间为:0-255转换按数据长度增加的方向进行,以保证数值不失真,或者精度不降低。例如,int 和 long 参与运算时,先把 int 类型的数据转成 long 类型后再进行运算。参考资料
- 转换按数据长度增加的方向进行,以保证数值不失真,或者精度不降低。
- 所有的浮点运算都是以双精度进行的,即使运算中只有 float 类型,也要先转换为 double 类型,才能进行运算。
- char 和 short 参与运算时,必须先转换成 int 类型
2) 强制类型转化
(type_name) expression // type_name为新类型名称,expression为表达式
(float) a; //将变量 a 转换为 float 类型
(int)(x+y); //把表达式 x+y 的结果转换为 int 整型
(float) 100; //将数值 100(默认为int类型)转换为 float 类型
在本次练习中,
- 数据类型与输出类型保持一致!
否则会有奇怪的错误!
也就是说,不能指望通过输出时变量类型的表示来转化对象的类型。