C语言Day02-计算

2.1.1变量定义

举个计算例子

#include <stdio.h>
int main(){
    int price= 0;
    printf("请输入金额(元):");
     scanf("%d",&price);//scanf是输入,&price是输入的整数 
     int change= 100-price;
     printf("找您%d元\n",change);
     return 0;
}

int price =0;

这一行定义了一个变量。变量的名字是price,类型是int,初始值是0

变量是一个保存数据的地方,当我们需要在程序中保存数据时,比如输入价格,就需要一个变量保存它。用了一个变量保存了数据,它才能参加到后面的计算中,比如计算找零。

变量的定义

定义变量的一般形式

类型名称 变量名称

例:int price;

2.1.2赋值和初始化

perice =0是一个式子,这里的”=“是一个赋值运算符,表示讲右边的值赋给左边的变量。

赋值

a=b是将b的值赋给a,关系是静态的,而动作是静态的。在数学中a=b是等价的,而在程序设计中,两者的意思完全相反。

初始化

当赋值发生在定义变量时,就是变量的初始化。虽然C语言并没有要求所有变量都在定义的地方做初始化,但是所有的变量在第一次被使用之前被赋值一次。

例:

#include <stdio.h>
int main(){
 int i;
 int j;
 j= i+10;
 printf("%d",j)
}//输出内容很奇怪
//但是如果给i赋值 int i= 0;则输出内容为10.

变量初始化

<类型名称><变量名称>=<初始值>

int price = 0;

组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,例

int price =0;,amount = 100;

错误:int price,amount =10,age;

变量类型

int price =0;

这一行定义了一个变量,变量的名字为price,类型为int,初始值是0.

C是一种有类型的语言,所有的变量在使用之前必须定义或者声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行中也不能改变变量的类型。

有效的变量名:包含字母、数字和下划线。

例1:name1是正确的变量名而1name不是,变量名不能以数字开头。

例2:name_1是有效变量名而name#1不是,含有#。

第二个变量

int change = 100-price;  //C99写法,ANSI C只能在代码开头定义变量。

定义了第二个 变量change并且做了计算。

读整数

scanf("%d",&price);//scanf代表输入,printf代表输出

要求scanf这个函数读入下一个整数,读到的结果赋值给price.

小心price前面的&.

2.1.3常量Vs变量,不变的量是常量

固定不变的数是常数,直接写在程序里

例:

const int AMOUNT = 100;//c99写法

const是一个修饰符,加在int前面用来给变量加上一个const的属性,表示这个变量的值一旦初始化,就不能发生改变。

例一:

int main(){
int amount = 100;
int price =0;
​
printf("请输入购买金额:");
scanf("%d",&price);
​
printf("请输入票面");
scanf("%d",&amont)
int change = amount - price;
printf("找您%元",change);
return 0;
}

例二:scanf读入多个变量

int a;
int b;
printf("请输入两个整数:");
printf("%d %d",&a,&b);
printf("%d+%d=&d\n",a,b,a+b);
​

2.1.4浮点数

带小数点的数、浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。

另一种方式叫做定点数,不过在C语言中人们用浮点数这个词表达所有带小数点的数。

例1:

printf("请分别输入英尺和英寸");
int foot;
int inch;
scanf("%d %d",&food,&inch);
printf("身高是%f米。\n",((foot + inch/12)*0.3048));
return 0;
//输出结果不对,因为int为整数所以inch/12还是为整数(丢掉0.1后面的小数点,保留整数)。
​
    

例2:

printf("%d\n",14/3);
return 0;
//结果为4(四舍五入)

10和10.0是完全不同的数.

10.0是浮点数。

例3:

printf("%f\n",10.0/3);
return 0;

例4:

double foot;
scanf("%lf",&foot);
printf("您的xx是%lf",12/3);
​
//两种形式结果一样
​
int foot;
scanf("%f",&foot);
printf("您的XX是%f",12.0/3);
​

double是双精度浮点数,float是单精度浮点数。

整数

int

printf("%d",...);

scanf("%d,...");

带小数点的数

double

printf("%f",...);

scanf("%fl",...);

2.2.1表达式

定义:一个表达式是一系列运算符和算子的组合,用来计算一个值。

例:count =count+1;

value=(min/2)*lastValue;

运算符是(operator):指进行运算的动作,比如加法运算符“+”,减法运算符“-”。

算子(operand):是指参与运算的值,这个值可能是常数还可能是变量,还可能是一个方法的返回值。

计算时间差

int hour1,minute1;
int hour2,minute2;
printf("请输入开始时间(格式为:小时 分钟):"); 
scanf("%d %d",&hour1,&minute1);
printf("请输入结束时间(格式为:小时 分钟):"); 
scanf("%d %d",&hour2,&minute2);
int t1 = hour1*60+minute1;
int t2 = hour2*60+minute2;
int t = t2-t1;
printf("时间差是%d小时%d分",t/60,t%60);
retutn 0;

2.2.2运算符优先级

 

单目运算是指(-1)负数。

赋值运算符(自右向左结合)

赋值也是运算,也有结果

a = 6的结果是a被赋予的值,也就是6

a=b=6----a=(b=6);

嵌入式赋值

int a = 6;
int b;
int c = 1+(b=a);

不利于阅读‘容易产生错误。

计算复利

#include <stdio.h>
int main(){
    double a =0;
    printf("请输入你的存款:");
    scanf("%lf",&a); 
    double b = a*(1+0.033)*(1+0.033)*(1+0.033);
    printf("您的本息为:%f",b);
    return 0;
} 

2.2.3交换两个变量

int main(void){
    int a = 5;
    int b = 6;
    int t;
    t=a;
    a=b;
    b=t;
    printf("a=%d,b=%d",a,b);
}

2.2.4复合赋值和递增递减

五个算数运算符,+ - * / %,可以和赋值运算符”=“结合起来,形成复合赋值运算符:”+=“,”-=“,”/=“,和”%=“。

例:

total += 5;
​
total = total + 5;
​
​
​
total +=(sum+100)/2;
​
total = toal+(sum+100)/2;
​
​
​
total*=(100+sum);
​
total = toal*(100+sum);

注意两个运算符中间不要有空格

递增递减运算符

”++“,”--“是两个很特殊的运算符,它们是单目运算符,这个算子必须是变量。这两个运算符分别叫做递增和递减运算符,他们的作用就是给这个变量+1或者+1.

count++;

count +=1;

count = count + 1;

前缀和后缀

++和--可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。

a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪一个,a自己的值都加了1.

 

这两个运算符有历史来源,可以单独使用但是不要进行组合表达式。

++i++__>?'

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值