【1】一开始在printf(“celsius=%d”,celsius)中的后一个celsius前加了个&,虽然没有报错,但是运行的时候总是输出奇怪的数字,翻阅资料后,发现不应该有&。但是&是什么意思呢?为什么不能在printf中加?(以下为百度资料)
①&,在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。
②加 & 传递的是指针,是一个内存地址;不加& 传递的是值,是一个变量的拷贝;printf 在输出时,只需要值就够了。而scanf 之所以加&,是因为他需要知道你想把输入的参数,保存在内存的什么地方,也就是你给的变量的地址。
【2】学会了区分%lf与%.1f(容易看混)
%lf是对应double的八字符,而%.1f是保留一位小数,同理,%.2f是保留两位小数,以此类推。
【3】学会了<=、>=的应用。
首先如果是一串大于小于号的时候,不能直接写成100<=N<=999,这样就会判定为N>=100或N<=999,而不是需要的N>=100和N<=999,所以应该写成N>=100&&N<=999。
【4】input不需要结束标签。
【5】
如果需要输出小数的话需要在赋值式里面加上(double),百度得知是要将后面的计算结果转换为double类型储存,所以即使是s已经有double的类型,还是要将算式转化为double。
按照我所学知识可知如果想要输出三位小数,可以如下图做法:
上述两种做法皆为正确。