(二)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.mzph.cn/news/164395.shtml

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

相关文章

顺序栈和链栈

#include<iostream> using namespace std; #define MAXSIZE 100 typedef int SElemType; typedef struct { SElemType* base; SElemType* top; int stacksize; }SqStack;//顺序栈 //构造一个空栈 int InitStack(SqStack& s) { s.base new SElemType…

Django之中间件与CSRF_TOKEN

文章目录 一、什么是中间件二、中间件有什么用三、Django自定义中间件中间件中主要方法及作用创建自定义中间件的步骤&#xff1a;process_request与process_response方法process_view方法process_exceptionprocess_template_response&#xff08;不常用&#xff09; 四、CSRF_…

mysql latin-1报错解决

conn pymysql.connect(hostmeta_conf[host], usermeta_conf[user], passwordmeta_conf[password], portmeta_conf[port], charsetutf8) 光把表声明 ENGINEINNODB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin ROW_FORMATDYNAMIC 并不能解决这个报错,需要在创建mysql连接时候…

面试:RabbitMQ相关问题

文章目录 简单介绍RabbitMQRabbitMQ架构什么是 RabbitMQ&#xff1f;有什么显著的特点&#xff1f;RabbitMQ 有那些基本概念&#xff1f;RabbitMQ routing 路由模式消息怎么路由&#xff1f;RabbitMQ publish/subscribe 发布订阅(共享资源)能够在地理上分开的不同数据中心使用 …

vue2指令的使用和自定义指令

前言 个人认为vue的指令,对比react来说,给开发者节省了很大的学习成本。比如在react中,你想渲染一个列表,需要用Array.map的方法return<div>,而在vue中,一个简单的v-for就解决了问题。 在学习成本和入手体验上,vue的作者确实后来者居上,能让人更快的使用vue开发。不过也…

无边界电视点播TVbox壳+源

TBBox可以是个盒子也可以是软件 视频播放的困局新的改变TVBox apk更成熟的熊猫宝盒_3.10还有这个没测试恒星TV 写在最后 视频播放的困局 现在电视上几大平台看剧集都要充会员&#xff0c;而电脑上网页端有很多可以看的网页&#xff0c;只有 随便一搜就测出来&#xff0c;只是经…

数据安全第一:应对[[MyFile@waifu.club]].wis勒索病毒的实用建议与技巧

引言&#xff1a; 在当今数字化时代&#xff0c;[[MyFilewaifu.club]].wis、[[backupwaifu.club]].wis勒索病毒是一种恶意软件&#xff0c;其危害用户数据安全&#xff0c;通过加密文件并勒索赎金来获取经济利益。以下是对[[MyFilewaifu.club]].wis、[[backupwaifu.club]].wis…

PyTorch包

进入PyTorch的官网&#xff1a; pytorch GitHub 点击GitHub&#xff1a; 进入PyTorch的主目录&#xff1a; 进入Vision reference&#xff1a; detection&#xff1a; 这就是我们在训练过程中会使用到的文件了&#xff1a;

objdump反汇编文件解析

命令使用 objdump可以对可执行文件进行反汇编 其常用参数为: objdump -d <file(s)>: 将代码段反汇编&#xff1b;objdump -S <file(s)>: 将代码段反汇编的同时&#xff0c;将反汇编代码与源代码交替显示&#xff0c;编译时需要使用-g参数&#xff0c;即需要调试信…

Hadoop技术与应用的习题

第一章测验 1、下面哪个选项不属于Google的三驾马车&#xff1f; A.HDFS B.MapReduce C.BigTable D.GFS 2、下面哪个思想是为了解决PageRank&#xff08;网页排名&#xff09;的问题&#xff1f; A.GFS B.BigTable C.MapReduce D.YARN 3、GFS 存储的文件都被分割成固定大小的…

CAN基础知识

CAN 简介 CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO 国际标准化的串行通信 协议。在当前的汽车产业中&#xff0c;出于对安全性、舒适性、方便性、低公害、低成本的要求&#xff0c;各种 各样的电子控制系统被开发了出来…

简单的用Python采集股票数据,保存表格后分析历史数据

前言 字节跳动如果上市&#xff0c;那么钟老板将成为我国第一个世界首富 趁着现在还没上市&#xff0c;咱们提前学习一下用Python分析股票历史数据&#xff0c;抱住粗大腿坐等起飞~ 好了话不多说&#xff0c;我们直接开始正文 准备工作 环境使用 Python 3.10 解释器Pychar…

如何应用ChatGPT撰写、修改论文及工作报告,提供写作能力及优化工作??

如果我想让gpt从pdf文档中提取相关关键词的内容&#xff0c;可以怎么做呢&#xff1f;&#xff1f;我们评论区讨论 ChatGPT 在论文写作与编程方面也具备强大的能力。无论是进行代码生成、错误调试还是解决编程难题&#xff0c;ChatGPT都能为您提供实用且高质量的建议和指导&am…

爱上C语言:scanf、gets以及getchar输入字符串你真的懂了吗

&#x1f680; 作者&#xff1a;阿辉不一般 &#x1f680; 你说呢&#xff1a;不服输的你&#xff0c;他们拿什么赢 &#x1f680; 专栏&#xff1a;爱上C语言 &#x1f680;作图工具&#xff1a;draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话&#xff0c;还请点赞…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchronizer.h> #include &…

spring 是如何开启事务的, 核心原理是什么

文章目录 spring 是如何开启事务的核心原理1 基于注解开启事务2 基于代码来开启事务 spring 是如何开启事务的 核心原理 Spring事务管理的实现有许多细节&#xff0c;如果对整个接口框架有个大体了解会非常有利于我们理解事务&#xff0c;下面通过讲解Spring的事务接口来了解…

建行广东省江门市分行走进农村地区开展反假货币宣传

人民对美好生活的向往&#xff0c;涉及方方面面&#xff0c;小至“钱袋子”安全。建行广东省江门市分行落实当地监管部门部署&#xff0c;积极扛起维护国家金融安全的重要政治责任&#xff0c;深入农村地区开展反假货币宣传工作&#xff0c;助力构建农村反假货币工作长效机制。…

Hyper-V系列:windows11开启系统自带安卓虚拟机并安装apk包

本文记录了Windows11系统下开启系统自带的安卓虚拟机,并通过安装包安装自定义应用的过程。开启系统自带的安卓虚拟机流程为:开启Hyper-V、安装Windows11子系统;安装apk安装包的流程为:安装adb调试工具、开启子系统的开发者模式、安装apk应用包。 一. 开启Hyper-V Hyper-V…

[BJDCTF2020]The mystery of ip1

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

【Vue】创建第一个实例

步骤&#xff1a; 1.创建容器 2.引包 3.创建实例 4.添加配置项 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--准备容器 --> <di…