C语言之温度转换
学习的历程是漫长的 仅仅用这一文章大概讲讲我这几天自己学习的历程
下面自己总结归纳的一些纯干货理解( 程序打在后面的 )
这是关于while 循环语句的温度转换
虽然看起来比较简单其实后面要注意的东西还是很细 很多
1.? ?输出的时候不是右边对齐的 可以再printf中直接%d指明打印的宽度
2.? ?我们使用的整形算数 得到的摄氏度不太准确 计算机忽略了小数点后面的
我们此处直接1.f 或者2.f 就是直接保留了多少位
3? ? 整个程序不能用5/9这种形式 原因是整形除法的计算规则 是因为他们相除并且舍位后是0
但是如果加了小数点 例如5.0/9.0就是浮点整形 就不舍位了
4? ?printf函数打印时一些规则
%d 按照十进制整形数打印
%6d至少6个字符宽度
%f按浮点数打印
%6f按浮点数打印 并至少6个字符宽度
如下程序
#include <stdio.h>
int main()
{
?? ?int fahr, celsius;
?? ?int lower, upper, step;
?? ?lower = 0;
?? ?upper = 300;
?? ?step = 20;
?? ?fahr = lower;
?? ?while (fahr <= upper) {
?? ??? ?celsius = 5 * (fahr - 32) / 9;
?? ??? ?printf("%3d %6d\n", fahr, celsius);
?? ??? ?fahr = fahr + step;
?? ?
?? ?}
#include<stdio.h>
//int ?main()
//{
//?? ?float fahr, celsius;
//?? ?int lower, upper, step;
//
//?? ?lower = 0;
//?? ?upper = 300;
//?? ?step = 20;
//?? ??
//?? ?fahr = lower;
//?? ?while (fahr <= upper) {
//?? ??? ?celsius = (5.0 / 9.0) * (fahr - 32.0);
//?? ??? ?printf("%3.0f %6.2f\n", fahr, celsius);//那个几f的意思就是保留到小数点后几位
//?? ??? ?fahr = fahr + step;
//?? ?}
?for语句显然优化了此代码
1两者执行结果显然一模一样但是使用for语句就省去了大量的变量
直接把温度 上限 下限 步长都当成常量
而且计算温度的表达式子直接被当成printf的第三个参数 而不是一个单独赋值语句
2for语句是一种循环语句 是对while语句的一种推广 for 其实更直观 括号里还是要分三个部分?
各部分之间用分号连接
?把这三部分拆开来看?
fahr=0 ;只执行一次‘
而fahr,<=300;’被看成条件被不停检验
后来是循环控制对该条件求值 如果检验到了结果为真就一直执行?
结果为假的 就直接结束
3最后再小结一下
其实for和 while 都是循环语句 具体用谁都是可以的
但是看哪一个更清晰 for语句就是比较适合初始化 和增加步长都是单条语句
他就比while更紧凑
#include<stdio.h>
/* ?本代码学习for语句的使用*/
int main()
{
?? ?int fahr=0;
? ? for (fahr = 0; fahr <= 300; fahr = fahr + 20)
?? ??? ??? ?printf("%3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
修改温度转换程序 以逆序进行
#include <stdio.h>
int main()
{
?? ?int fahr;
?? ?for (fahr = 300; fahr >= 0; fahr = fahr - 20)
?? ??? ?printf(" % 3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}
这里用for 改一下初始变量的值 把加改成减其他的不变
码字不易啊 如果有大佬看到可多多指点
后续保持2到3天一更新吧 希望也能给像我一样的小白一些灵感启发
也欢迎多多交流 QQ地址@2192218405.com?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!