计算--变量


在线C环境:https://clin.icourse163.org/

 变量

1.做计算

#include 

int main() {
printf("23+1=%d\n",23+1);
    return 0;
}

2.如何能在程序运行时输入那个数字,然后计算输入结果呢?

需要:

  1. 有地方放输入的数字;
  2. 有办法输入数字
  3. 输入的数字能参与运算
#include 

int 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.变量初始化

  • <类型名称> <变量名称> = <初始值>
  1. int price = 0;
  2. int amount = 100;
  • 组合变量定义的时候,也可以在这个定义 中单独给单个变量赋初值,如:
  1. int price = 0, amount = 100;

6. 读整数

  • scanf("%d", &price);
  • 要求scnaf这个函数读?下?个整数,读到 的结果赋值给变量price
  • ??price前?的&

7. 表达式

  • “=”是赋值运算符,有运算符的式?就叫 做表达式。
  1. price=0;
  2. change=100-price;

8.变量类型

  • int price = 0;
  • 这??,定义了?个变量。变量的名字是 price,类型是int,初始值是0。
  • C是?种有类型的语?,所有的变量在使 ?之前必须定义或声明,所有的变量必须 具有确定的数据类型。数据类型表?在变 量中可以存放什么样的数据,变量中只能 存放指定类型的数据,程序运?过程中也 不能改变变量的类型。
  • ? 只能在代码开头的地?定义变量

9.常量

  • int change = 100 - price;
  • 固定不变的数,是常数。直接写在程序?, 我们称作直接量(literal)。
  • 更好的?式,是定义?个常量:
  1. const int AMOUNT = 100;            C99定义的

9.1 .const

  • const是?个修饰符,加在int的前?,?来 给这个变量加上?个const(不变的)的属 性。这个const的属性表?这个变量的值? 旦初始化,就不能再修改了。
  1. int change = AMOUNT - price;
  • 如果你试图对常量做修改,把它放在赋值 运算符的左边,就会被编译器发现,指出 为?个错误。

10. try

让?户输?变量AMOUNT的值,?不是 使?固定的初始值

这个变量在哪?定义合适呢?

11. tips

程序要求读?多个数字时,可以在??输 ?,中间?空格分开,也可以在多?输?

在scanf的格式字符串中有?个%d,它就等 待?户输??个整数,当然,字符串后? 也需要对应有那么多个整数

12. plus.c

13. 案例:计算身高的程序

#include 

int 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

#include 

int 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. 数据类型

  • 整数
  1. int
  2. printf("%d",…)
  3. scanf("%d",…)
  • 带?数点的数
  1. double
  2. printf("%f",…)
  3. scanf("%lf",…)

18. 整数

整数类型不能表达有?数部分的数,整数 和整数的运算结果还是整数。计算机?会 有纯粹的整数这种奇怪的东?,是因为整 数的运算?较快,?且占地?也?。其实 ?们?常?活中?量做的还是纯粹整数的 计算,所以整数的?处还是很?的。