计算--变量
在线C环境:https://clin.icourse163.org/
变量
1.做计算
#includeint main() { printf("23+1=%d\n",23+1); return 0; }
2.如何能在程序运行时输入那个数字,然后计算输入结果呢?
需要:
- 有地方放输入的数字;
- 有办法输入数字
- 输入的数字能参与运算
#includeint main() { int price=0; printf("请输入金额(元):"); scanf("%d",&price); int change=100-price; printf("找您%d元\n",change); return 0; }
2.1 如何输?
- 输?也在终端窗?中
- 输?是以?为单位进?的,?的结束标志 就是你按下了回?键。在你按下回?之前, 你的程序不会读到任何东?
2.2 变量
- int price = 0;
- 这??,定义了?个变量。变量的名字是 price,类型是int,初始值是0。
- 变量是?个保存数据的地?,当我们需要 在程序?保存数据时,?如上?的例?中 要记录?户输?的价格,就需要?个变量 来保存它。??个变量保存了数据,它才 能参加到后?的计算中,?如计算找零。
3. 变量定义
- 变量定义的?般形式就是: <类型名称> <变量名称>;
- int price;
- int amount;
- int price, amount;
3.1 变量的名字
- 变量需要?个名字,变量的名字是?种 “标识符”,意思是它是?来识别这个和那 个的不同的名字。
- 标识符有标识符的构造规则。基本的原则 是:标识符只能由字?、数字和下划线组 成,数字不可以出现在第?个位置上,C 语?的关键字(有的地?叫它们保留字) 不可以?做标识符。
4. 赋值和初始化
- int price = 0;
- 这??,定义了?个变量。变量的名字是 price,类型是int,初始值是0。
- price=0是?个式?,这?的“=”是?个赋 值运算符,表?将“=”右边的值赋给左边 的变量。
4.1赋值
和数学不同,a=b在数学中表?关系,即a 和b的值?样;?在程序设计中,a=b表? 要求计算机做?个动作:将b的值赋给a。 关系是静态的,?动作是动态的。在数学 中,a=b和b=a是等价的,?在程序设计 中,两者的意思完全相反
4.2 初始化
当赋值发?在定义变量的时候,就像程序 1中的第7?那样,就是变量的初始化。虽 然C语?并没有强制要求所有的变量都在 定义的地?做初始化,但是所有的变量在 第?次被使?(出现在赋值运算符的右边) 之前被应该赋值?次
5.变量初始化
- <类型名称> <变量名称> = <初始值>
- int price = 0;
- int amount = 100;
- 组合变量定义的时候,也可以在这个定义 中单独给单个变量赋初值,如:
- int price = 0, amount = 100;
6. 读整数
- scanf("%d", &price);
- 要求scnaf这个函数读?下?个整数,读到 的结果赋值给变量price
- ??price前?的&
7. 表达式
- “=”是赋值运算符,有运算符的式?就叫 做表达式。
- price=0;
- change=100-price;
8.变量类型
- int price = 0;
- 这??,定义了?个变量。变量的名字是 price,类型是int,初始值是0。
- C是?种有类型的语?,所有的变量在使 ?之前必须定义或声明,所有的变量必须 具有确定的数据类型。数据类型表?在变 量中可以存放什么样的数据,变量中只能 存放指定类型的数据,程序运?过程中也 不能改变变量的类型。
- ? 只能在代码开头的地?定义变量
9.常量
- int change = 100 - price;
- 固定不变的数,是常数。直接写在程序?, 我们称作直接量(literal)。
- 更好的?式,是定义?个常量:
- const int AMOUNT = 100; C99定义的
9.1 .const
- const是?个修饰符,加在int的前?,?来 给这个变量加上?个const(不变的)的属 性。这个const的属性表?这个变量的值? 旦初始化,就不能再修改了。
- int change = AMOUNT - price;
- 如果你试图对常量做修改,把它放在赋值 运算符的左边,就会被编译器发现,指出 为?个错误。
10. try
让?户输?变量AMOUNT的值,?不是 使?固定的初始值
这个变量在哪?定义合适呢?
11. tips
程序要求读?多个数字时,可以在??输 ?,中间?空格分开,也可以在多?输?
在scanf的格式字符串中有?个%d,它就等 待?户输??个整数,当然,字符串后? 也需要对应有那么多个整数
12. plus.c
13. 案例:计算身高的程序
#includeint main() { printf("请分别输入身高的英尺和英寸,""如输入\"5 7\"表示5英尺和7英寸\n"); int foot; int inch; scanf("%d %d",&foot,&inch); printf("身高是%f米。\n", ( (foot+inch/12)*0.3048 )); return 0; }
输入5 7,为什么总是1.524??
因为两个整数的运算的结果只能是整数
10和10.0在C中是完全不同的数
10.0是浮点数
14. 浮点数
- 带?数点的数值。浮点这个词的本意就是 指?数点是浮动的,是计算机内部表达? 整数(包含分数和?理数)的?种?式。 另?种?式叫做定点数,不过在C语?中 你不会遇到定点数。?们借?浮点数这个 词来表达所有的带?数点的数。
- 当浮点数和整数放到?起运算时,C会将 整数转换成浮点数,然后进?浮点数的运 算。
15. double
- inch是定义为int类型的变量,如果把int换 成double,我们就把它改为double类型的 浮点数变量了。
- double的意思是“双”,它本来是“双精度浮 点数”的第?个单词,?们?来表?浮点 数类型。除了double,还有float(意思就 是浮点!)表?单精度浮点数。
16. int换成double
#includeint main() { printf("请分别输入身高的英尺和英寸,""如输入\"5 7\"表示5英尺和7英寸\n"); int foot; int inch; scanf("%d %d",&foot,&inch); printf("身高是%f米。\n", ((foot+inch/12)*0.3048)); return 0; }
17. 数据类型
- 整数
- int
- printf("%d",…)
- scanf("%d",…)
- 带?数点的数
- double
- printf("%f",…)
- scanf("%lf",…)
18. 整数
整数类型不能表达有?数部分的数,整数 和整数的运算结果还是整数。计算机?会 有纯粹的整数这种奇怪的东?,是因为整 数的运算?较快,?且占地?也?。其实 ?们?常?活中?量做的还是纯粹整数的 计算,所以整数的?处还是很?的。