顺序结构 ( 三 ) —— 常量和变量 【互三互三】

常量

一、常量概述

常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如123,145.88,'m',TRUE等。

1、整型常量:如3、-5、0等。    

整型常量是表示整数的常量。有三种表示形式:    

        1)十进制形式。如99、-1。    

        2)八进制形式。以数字0打头,由0-7构成,如012,表示八进制整数12,即12(8)。            3)十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。

2、实型常量:如3.1、-6.1E+2(科学记数法)。

3、字符常量:是用单引号括起来的字符,如 'k' 、'5' 、'%'。 注意:'a'与"a"表示的含义是不同的,'a'表示一个字符常量,"a"表示一个字符串。

、常量的定义 

一个常量可以直接调用(如124,'A'),也可以给常量取个名字用一个标识符代表它,这就是符号常量。其语法格式为:             

const  符号常量=常量字串;     

例如:const double PI=3.1415926;

三、例题 

输入半径r,输出圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。

程序如下:

#include<cstdio> 
using namespace std;
const double  PI=3.14159;         //PI是符号常量。代表3.14159
int main()
{double r,d,c,s;             //变量定义为双精度实型scanf("%lf",&r);            //输入r的值,&符号不能漏掉d=r*2;                      //计算圆的直径c=2*PI*r;                   //计算圆的周长s=PI*r*r;                   //计算圆的面积printf("%.4lf %.4lf %.4lf",d,c,s);//分别输出圆的直径,周长,面积,数与数之间以一个空格分开return 0;
}

程序中定义的PI代表常量3.1415926,在编译源程序时,遇到PI就用常量3.14159代替,PI可以和常量一样进行运算。C++语言规定,每个符号常量的定义占据一个书写行,而且符号常量不能被再赋值。如果在例题中使用以下赋值语句是错误的。    

PI=3.14159;

习惯上,符号常量名用大写,而变量名用小写,以便于区别。 使用符号常量的好处:

1)增加了程序的可读性。如看到例2.5程序中,见到PI就可知道它代表圆周率,定义符号常量名时应该尽量使用见名知意的常量名。

2)增加了程序的易改性。如例题程序中,只需改动一处,程序中的所有PI都会自动全部代换,做到“一改全改”。

变量

一、变量定义

变量代表了一个存储单元,其中的值是可以改变的,因此称为变量。如游戏中玩家命的条数最初为3,当你死了一次,命减少一条,这里命的条数就是一个变量(或者说命的条数存储在一个存储单元中)。

一个程序中可能要使用到若干个变量,为了区别不同的变量,必须给每个变量(存储单元)取一个名(称为变量名),该变量(存贮单元)存储的值称为变量的值,变量中能够存储值的类型为变量的类型。例如游戏中用于存储“命”的变量,在游戏程序中的存储命的变量名可取为life,它的类型为整型,游戏初始时这个变量的值为3。

二、变量名

用一个合法的标识符代表一个变量。如n,m,rot,total 等都是合法变量名。在程序中用到的变量要“先定义后使用”,变量名应遵循自定义标识符的命名规则,并建议使用“见名知义”的原则,即用一些有意义的单词作为变量名。在C++语言,变量名大小写有区别。

用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。C++语言规定,标识符只能由字母(包含下划线“_”)开头,后面的字符可以是字母或数字。对于标识符的长度,不同的C++语言编译器有不同的规定,考虑到系统的可移植性,建议变量名的长度不要超过8个字符。例如:month、_age、s2为合法的标识符;m.k.jack、a<=b、9y为不合法的标识符。

定义变量的语法格式为:

数据类型   变量表

例如:

int  i=5,j,k;           //定义i,j,k为整型变量,//i赋初值为5,j,k的初值未知。char a,b,c;                     //定义a,b,c为字符变量float  x,y,z;                   //定义x,y,z为实型变量

C++语言允许在定义变量的同时为变量赋初值。

三、变量的类型

常量是有类型的数据,变量在某一固定时刻用来存储一个常量,因此也应有相应的类型。如整型变量用来存储整数,实型变量用来存储实数。变量的类型,可以是标准数据类型int、short、long、float、double和char等,也可以是用户自定义的各种类型。

变量一经定义系统就在计算机内存中为其分配一个存储空间。在程序中使用到变量时,就在相应的内存中存入数据或取出数据,这种操作称为变量的访问。

四、例题

数学中经典的“鸡兔同笼”问题,已知头共30个,脚共90只,问笼中的鸡和兔各有多少只?

【分析】 设鸡为j只,兔为t只,头为h,脚为f,那么有:         

j+t=30 ,①         

2*j+4*t=90 ,②     

假设笼中30 个头全都是兔,那么都按每头4只脚计算,总脚数为(4*h),与实际脚数(f )之差为(4*h-f),如果这个差=0,则笼中全是兔(即鸡为0只);如果这个差值 >0,说明多计算了脚数,凡是鸡都多计算了两只脚,用它除以2就能得到鸡的只数,算法为:     

 j=(4*h - f)/2           //先用脚数差值除以2算出鸡的只数     

t=h - j                 //再用总头数减鸡数算出免的只数

注意这两步运算的先后顺序。程序如下:

#include<cstdio>              //使用getchar()语句, 须调用cstdio库
#include<iostream>            //使用cin,cout,须调用iostream库
using namespace std;
int main()
{int h,f,j,t;              //定个变量h=30;f=90;                //变赋初值j=(4*h-f)/2;              //计算鸡的只数t=h-j;                    //计算免的只数cout<<"j="<<j<<"  t="<<t<<endl;  / /输出结果return 0;
}

程序中语句的自上而下的顺序很关键,程序严格自上而下每条语句都被执行一次就称为顺序程序。

总结 

有不懂的地方可以si我,和我一起学习C++吧。

备注

还没有下载DEV-C++的小伙伴们可以私我拿到免费安装包

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

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

相关文章

Unity Shader学习笔记

Shader类型 类型详情Standard Surface Shader标准表面着色器&#xff0c;基于物理的着色系统&#xff0c;用于模拟各种材质效果&#xff0c;如石头、木材、玻璃、塑料和金属等。Unlit Shader最简单的着色器&#xff0c;不包含光照但包含雾效&#xff0c;只由最基础的Vertex Sh…

【Vision Pro开发】小白开发如何过渡到visionOS开发 - SOP清单

为什么Unity开发者应该考虑学习Vision OS的原生开发,并解释了开发过程中面临的挑战和优势。我整理了一些关键点,对于刚进入这个赛道的小白开发者可以参考: 1. Vision Pro开发平台选择 - 主要有三种选择:原生开发(Xcode+SwiftUI+RealityKit)、Unity开发和WebXR开发 - 原生开…

30. 梯度下降法及其应用

1. 引言 在深度学习中&#xff0c;损失函数的求解是一个关键步骤。损失函数通常没有解析解&#xff0c;因此需要通过最优化算法来逼近求解。其中&#xff0c;梯度下降法是最常用的优化算法之一。本文将详细介绍梯度下降法的基本概念、理论基础、及其在深度学习中的应用。 2. …

甄选范文“论基于构件的软件开发方法及其应用”,软考高级论文,系统架构设计师论文

论文真题 基于构作的软件开发 (Component-Based Software Development,CBSD) 是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS (Commercial-Off-the-Shelf)构件,也可以是通过其它途径获得的构件(如自…

命名空间知识点

命名空间基本概念 概念 命名空间是用来组织和重用代码的。 作用 就像是一个工具包&#xff0c;类就像是一件一件的工具&#xff0c;都是申明在命名空间中的。 命名空间的使用 基本语法 namespace 命名空间名 { 类 类 } namespace MyGame {class GameObject{} }namesp…

2970.力扣每日一题7/10 Java(暴力枚举)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 解题思路 解题方法 时间复杂度 空间复杂度 Code 解题思路 incre…

图论---无向图中国邮路的实现

开始编程前分析设计思路和程序的整体的框架&#xff0c;以及作为数学问题的性质&#xff1a; 程序流程图&#xff1a; 数学原理&#xff1a; 本质上是找到一条欧拉回路&#xff0c;考虑图中的边权重、顶点的度数以及如何通过添加最少的额外边来构造欧拉回路&#xff0c;涉及到欧…

完善kobj_type结构体

1、实现kobj_type的release函数 #include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> #include<linux/kobject.h> #include<linux/slab.h>static void dynamic_kobj_release(struct kobject *kobj); struct my_kobject …

链表 OJ(一)

移除链表元素 题目连接&#xff1a; https://leetcode.cn/problems/remove-linked-list-elements/description/ 使用双指针法&#xff0c;开始时&#xff0c;一个指针指向头节点&#xff0c;另一个指针指向头节点的下一个结点&#xff0c;然后开始遍历链表删除结点。 这里要注…

泛型集合:Java中的类型安全与类型擦除

引言 泛型是Java 5引入的一项重要特性&#xff0c;它为编译时类型安全提供了支持。在集合框架中&#xff0c;泛型发挥着至关重要的作用&#xff0c;允许开发者指定集合中元素的类型&#xff0c;从而避免了类型转换的错误和运行时异常。此外&#xff0c;Java中的类型擦除机制虽然…

Spring-Data-Elasticsearch

简介 Spring Data for Elasticsearch 是 Spring Data 项目的一部分&#xff0c;该项目旨在为新数据存储提供熟悉且一致的基于 Spring 的编程模型&#xff0c;同时保留特定于存储的特性和功能。 Spring Data Elasticsearch 项目提供了与 Elasticsearch 搜索引擎的集成。Spring…

推荐一款功能强大的 GPT 学术优化开源项目GPT Academic:学术研究的智能助手

今天&#xff0c;我将向大家介绍一个强大的开源项目—GPT Academic&#xff0c;它或许正是你一直在寻找的理想工具。 已一跃成为 60.4k Star 的热门项目 GPT Academic 目前在 GitHub 上已经揽获了 60.4k 的 Star&#xff0c;这不仅反映了它的受欢迎程度&#xff0c;更证明了它…

硅纪元AI应用推荐 | 百度橙篇成新宠,能写万字长文

“硅纪元AI应用推荐”栏目&#xff0c;为您精选最新、最实用的人工智能应用&#xff0c;无论您是AI发烧友还是新手&#xff0c;都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能&#xff0c;开启智慧新时代&#xff01; 百度橙篇&#xff0c;作为百度公司在202…

法律智能的新纪元:Transformer模型在智能法律咨询的突破性应用

法律智能的新纪元&#xff1a;Transformer模型在智能法律咨询的突破性应用 在法律领域&#xff0c;准确、高效的信息处理能力对于提供专业咨询服务至关重要。随着人工智能技术的飞速发展&#xff0c;Transformer模型凭借其卓越的语言理解能力&#xff0c;在智能法律咨询系统中…

【网络安全】Oracle:SSRF获取元数据

未经许可&#xff0c;不得转载。 文章目录 前言正文漏洞利用 前言 Acme 是一家广受欢迎的播客托管公司&#xff0c;拥有庞大的客户群体。与许多大型运营公司一样&#xff0c;Acme 采用了Apiary的服务&#xff0c;使用户能够安全高效地管理他们的播客。 Apiary 于2017年初被Or…

我的前端实习之旅

在大学的最后一年&#xff0c;我获得了一个宝贵的机会——在一家外包公司担任前端开发实习生。这一经历不仅让我得以将所学知识应用于实践&#xff0c;还教会了我许多课本之外的重要课程。 加入公司的第一天&#xff0c;我就意识到学术和职业环境之间的差异。我被分配到一个正…

PostgreSQL16安装Mac(brew)

问题 最近需要从MySQL切换到PostgreSQL。我得在本地准备一个PostgreSQL。 步骤 使用brew安装postgresql16: arch -arm64 brew install postgresql16启动postgresql16: brew services start postgresql16配置postgresql环境变量&#xff0c;打开环境变量文件&#xff1a; …

LabVIEW优化氢燃料电池

太阳能和风能的发展引入了许多新的能量储存方法。随着科技的发展&#xff0c;能源储存和需求平衡的方法也需要不断创新。智慧城市倡导放弃石化化合物&#xff0c;采用环境友好的发电和储能技术。氢气系统和储存链在绿色能源倡议中起着关键作用。然而&#xff0c;氢气密度低&…

从零开始实现大语言模型(三):Token Embedding与位置编码

1. 前言 Embedding是深度学习领域一种常用的类别特征数值化方法。在自然语言处理领域&#xff0c;Embedding用于将对自然语言文本做tokenization后得到的tokens映射成实数域上的向量。 本文介绍Embedding的基本原理&#xff0c;将训练大语言模型文本数据对应的tokens转换成Em…

JEECG框架t:datagrid表格/EasyUI框架DataGrid表格设置nowrap:false部分列不起作用或者完全不起作用

nowrap属性对于英文字母&#xff0c;数字无效&#xff0c;设置列宽度&#xff0c;也不能自动换行或者由于某些样式冲突导致直接不起作用的情况下&#xff0c;可采用以下办法解决换行问题。 解决办法&#xff1a;定义一个formatter方法&#xff0c;实现换行 /*** 表格列宽度不够…