(二)C语言之变量与算数运算表达式概述

C语言之变量与算数运算表达式概述

  • 一、华氏温度与摄氏温度对照
  • 二、代码概述
  • 三、练习

一、华氏温度与摄氏温度对照

#include <stdio.h>/*当华氏温度为 0,20,40,...300时,打印出华氏温度与摄氏温度对照表华氏温度与摄氏温度 C=(5/9)(̧F-32) 其中C表示摄氏温度,F表示华氏温度
*/
main() 
{// 华氏温度f, 摄氏温度cint f, c;// 最低温度,最高温度,步长int lower, upper, step;lower = 0;upper = 300;step = 20;f = lower;while (f<=upper) {// 如果先计算5/9,小数部分会被舍位,结果永远是0c = 5 * (f - 32) / 9;printf("%d\t%d\n", f, c);f = f + step;}
}

在这里插入图片描述

二、代码概述

上面的程序比较简单,这里从上到下只做粗略描述,目的是了解程序的构造:

  • 包含在/*与*/之间的字符序列,称之为多行注释;
  • 在//后面的字符序列,称之为单行注释;
  • 注释会被编译器忽略。
  • 在C语言中,所有变量都必须先声明后使用。声明通常放在函数起始处,在任何可执行语句之前。
  • 声明用于说明变量的属性,它由一个类型名和一个变量表组成,例如
    • int f, c; 其中int为类型名,表示整数;f,c为两个变量,放到一起就是一个变量表
    • int lower, upper, step; 同上
  • int的取值范围取决于具体的机器(这与java不同),有16位的,也有32位的,即决定给变量分配多少空间
    • 2字节int, 16位,符号位占1位,正/负数取值2^15=32768
    • 4字节int, 32位,符号位占1位,正/负数取值2^31=2,147,483,648
  • 变量基本类型除了int,还有char, short,long,long long,float,double
  • 赋值语句,就是给变量设置初始值、或新的值
    • lower = 0;
    • upper = 300;
    • step = 20;
    • f = lower;
  • while循环语句,重复执行的逻辑可以放到while循环里面,()里面的是进入循环的条件,如果成立,则进入循环执行循环体,{}里面的代码就是所谓的循环体;当()中的条件不成立时,循环结束,继续执行循环结构后面的其他代码
    while (f<=upper) {}
  • printf是一个通用输出格式化函数,该函数第一个参数是待打印的字符串,其中的每个%是其他参数(第二个、第三个…)的占位符,运行之后实际的参数值会替换掉%,从而打印出完整的、格式化的字符串
    • printf(“%d\t%d\n”, f, c); 打印华氏\t摄氏温度\n,\t表示一个制表符,\n表示换行,二者都属于转义字符
  • 上面的温度转换程序存在两个问题
    • 输出的数字不是靠右对齐,不美观,可以使用printf()进行格式化,使其右对齐

      • printf(" %3d\t%6d\n", f, c); 3个空格位+3个数字位+1个制表符+6个数字位,这样显现出来的效果就是右对齐,左边不足的位数空出
        在这里插入图片描述
    • 另一个较为严重的问题是,我们使用的是整型运算,由于小数位会被舍弃,所以得到的结果不太准确。可以使用浮点数计算,修改程序如下:
      在这里插入图片描述

      • 变量声明为float,赋值时,如果给定的值是整型,则会自动转为浮点型,比如 lower=0;
      • 运算时,如果有一个浮点型和一个整型,则在运算之前,整型会自动转为浮点型,比如 f-32, 32会自动转为32.0
      • 可以按照公式进行程序编写, C=(5/9)(̧F-32),把运算表达式中所有的整型数字都改成浮点数
      • 3.0f 表示浮点数至少占3个字符宽,不保留小数
      • 6.1f 表示浮点数至少占6个字符宽,保留一位小数
      • 格式测试
	// %d 按照十进制整型数打印    decimalismprintf("%d|%d|%d\n", 1, 100, 1000);// %6d 按照十进制整型数打印,至少6个字符宽(待打印字符小于6个,左侧不足位补空格;大于等于6个,按实际打印)printf("%6d|%6d|%6d|%6d\n", 6, 66666, 666666, 66666666);// %f 按照浮点数打印  float  小数点最多6位,如果实际不足6位,右侧不足位补0;如果实际多于6位,则进位printf("%f|%f|%f|%f|%f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %6f 按照浮点数打印,至少6个字符宽,基本同上printf("%6f|%6f|%6f|%6f|%6f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %.2f 按照浮点数打印, 小数点后两位小数,不足右端补0,多出进位printf("%.2f|%.2f|%.2f|%.2f|%.2f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %6.2f 按照浮点数打印, 至少6个字符宽(包含小数部分、小数点), 小数部分两位;不足6位左侧补空格,多出6位整数部分按实际打印printf("%6.2f|%6.2f|%6.2f|%6.2f|%6.2f\n", 1.1, 1000.222, 1.123456, 1.1234567, 123451.12345638);// %o 按照八进制打印   octonaryprintf("%o\n", 8);// %x 按照十六进制打印 hexadecimalprintf("%x\n", 16);// %c 字符printf("%c\n", 'c');// %s 字符串printf("%s\n", "hello wrold!");// %% 表示%本身printf("%%\n");

三、练习

  1. 修改温度转换程序,使之能在转换表的顶部打印一个标题
#include <stdio.h>
main()
{// 华氏温度f, 摄氏温度cfloat f, c;// 最低温度,最高温度,步长float   lower, upper, step;lower = 0;upper = 300;step = 20;f = lower;printf("%s\t%s\n", "华氏温度", "摄氏温度");while (f <= upper) {c = 5.0 / 9.0 * (f - 32.0);printf("   %3.0f\t%14.1f\n", f, c);f = f + step;}
}
  1. 编写一个程序,打印摄氏温度转换为华氏温度的转换表
#include <stdio.h>/*当摄氏温度为 0,20,40,...300时,打印出摄氏温度与华氏温度对照表F=(9.0/5.0)*C+32 其中F表示华氏温度,C表示摄氏温度
*/
main()
{// 华氏温度f, 摄氏温度cfloat f, c;// 最低温度,最高温度,步长float   lower, upper, step;lower = 0;upper = 300;step = 20;c = lower;printf("%s\t%s\n", "摄氏温度", "华氏温度");while (c <= upper) {f = (9.0 / 5.0) * c + 32;printf("   %3.0f\t%14.1f\n", c, f);c = c + step;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/211696.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

latex通过bib添加参考文献作者名字有特殊符号如字母上有两点乱码解决办法

一、背景 在使用latex写英文论文时&#xff0c;一般是通过bib的方式添加参考文献。但有的参考文献作者是法国人或其他国家的&#xff0c;名字会有特殊符号&#xff0c;如某个字母上有两个点&#xff0c;或者声调符号等等&#xff0c;如下图所示&#xff1a; 如果不进行特殊操作…

计算机组成原理2

1.浮点数 2.IEEE 754 3.存储器的性能指标 4.存储器的层次化结构 主存类似手机运行内存8g &#xff0c;辅存类似手机内存128g.... 辅存必须先通过主存才能被cpu接收&#xff0c;就例如微信打开那个月亮小人界面两三秒就是主存在读取辅存的程序然后被cpu接收运行。 5.主存储…

Springboot集成swagger之knife4j

knife4j的最终效果&#xff1a; 支持直观的入参介绍、在线调试及离线各种API文档下载。 1 引入pom <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</ver…

【CCF-PTA】第03届Scratch第05题 -- 统计出现次数最多的字

统计出现次数最多的字 【题目描述】 我国自古流传下来不少脍炙人口的诗歌&#xff0c;各具特色&#xff0c;别具一格。有些诗只用寥寥几个字&#xff0c;就能描绘出生动的意境。 请找出以下诗篇中出现次数最多的字&#xff0c;如果有多个字出现次数相同&#xff0c;则答案为…

后渗透持久性-– 服务控制管理器

执行以下命令将快速检索服务控制管理器实用程序的 SDDL 权限。 sc sdshow scmanager服务控制管理器 – 安全描述符 PowerShell 还可用于枚举所有用户组的 SDDL 权限并将其转换为可读格式。 $SD Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Schedule\S…

人人吐槽互联网行情不好?但这个岗位的需求猛增、疯狂招人!

在目前的大环境下&#xff0c;外部力量对国内国高科技领域的打压和封锁&#xff0c;国内的IT大厂纷纷进行了裁员&#xff0c;IT行业的龙头大厂裁员举措引发行业震动…… 可真的是这样吗&#xff1f;中国IT没前途了?在IT行业找不到工作了&#xff1f;非也非也&#xff0c;这只…

[BJDCTF2020]The mystery of ip1

提示 ssti模板注入head头x-forwarded-for 每一次做题的最开始流程都大致因该是 信息收集找可以操控的地方 查看hint页面的源代码又发现它提示说 ####你知道为什么会知道你的ip吗 查看flag页面 从刚才给我的提示以及他这里显示的我的ip&#xff0c;大概找到了我可操作的可控点 …

OpenCV实现图像噪声、去噪基本方法

一、噪声分类 1、高斯噪声 指服从高斯分布&#xff08;正态分布&#xff09;的一类噪声&#xff0c;其产生的主要原因是由于相机在拍摄时视场较暗且亮度不均匀造成的&#xff0c;同时相机长时间工作使得温度过高也会引起高斯噪声&#xff0c;另外电路元器件白身噪声和互相影响…

【学习篇】Linux中grep、sed、awk

Linux 文本处理三剑客 – awk, sed, grep grep过滤文本 https://zhuanlan.zhihu.com/p/561445240 grep 是 Linux/Unix 系统中的一个命令行工具&#xff0c;用于从文件中搜索文本或字符串。grep 代表全局正则表达式打印。当我们使用指定字符串运行 grep 命令时&#xff0c;如…

聚类笔记/sklearn笔记:Affinity Propagation亲和力传播

1 算法原理 1.1 基本思想 将全部数据点都当作潜在的聚类中心(称之为 exemplar )然后数据点两两之间连线构成一个网络( 相似度矩阵 )再通过网络中各条边的消息( responsibility 和 availability )传递计算出各样本的聚类中心。 1.2 主要概念 Examplar聚类中心similarity S(i…

Java入门级基础教学(史上最详细的整合)

目录 一&#xff1a;基础语法 1.“Hello word” 2.Java的运行机制 3. Java基本语法 1.注释、标识符、关键字 2.数据类型&#xff08;四类八种&#xff09; 4.类型转换 1.自动转换 2.强制转换 5.常量和变量 1.常量 2.变量 3.变量的作用域 6.运算符 1.算数运算符 …

Android11编译第七弹:串口文件读写

问题&#xff1a;需要对SIM卡进行管理&#xff0c;支持APP切换SIM卡。此功能需要访问串口文件&#xff0c;并且对串口文件进行读写。APP操作串口文件/dev/ttyUSB1时&#xff0c;串口文件打开失败。 2023-11-23 10:59:44.092 14264-14264 MULTI_CARD_SerialHandle com.wellnkio…