【C语言自学笔记】变量及表达式

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

1变量

变量:保存数据的地方
int price=0,定义一个变量。名称:price;类型:int;初始值0

1.1定义

格式
<类型名称><变量名称> int price
  • C语言中,变量名称为“标识符”
  • 标识符构造基本规则:只能由字母、数字和下划线组成(数字不可出现在第一个位置上;保留字/关键字不可以用作标识符)

1.2赋值和初始化

赋值
price=0表达式子中“=”:赋值运算符(右边的值赋给左边的变量)

a=b表示将b的值赋给a

变量初始化
C语言中,在定义变量时发生赋值则称为初始化;

格式
<类型名称><变量名称>=<初始值> int price=0
  • 组合变量定义时,也可以给定义中单个变量单独赋值int price=0,amount=100;必须一个一个赋值
  • 如果没有初始化,也应在变量第一次被使用之前赋值一次
    输出出现乱码:变量里原始的数据

1.3常量与变量

1.输入
scanf("%d",&price);:利用scanf函数读入下一个整数并赋值给price。

  • 若输入非整数,则price=0(初始化结果)。

2.常量
int change=100-price;

  • 固定不变的数是常数
  • 100:直接写在程序里,称作直接量(literal)
改进:
const int AMOUNT=100;
int change=AMOUNT-price;
  • const(不变的):修饰符,初始化后不能再被赋值
  • 尝试被赋值,编译器将报错
继续改进:
int amount=100;
printf("请输入票面:");
scanf("%d",&amount);
int change=amount-price;
  • 将常量变为变量,从而改变常量的值
  • scanf("%d %d",&amount,&price):可输入多个值

1.4浮点数

带小数点的数值

    int foot;
	int inch;
	printf("请输入身高(英尺和英寸):");
	scanf("%d %d", &foot,&inch);
	printf("身高是%f米。\n",((foot+inch/12.0)*0.3048));
	return 0;

(foot+inch/12.0)*0.3048

  • 12.0与12在C中是完全不同的数
  • 浮点数与整数一起运算时,整数被转换成浮点数,进行浮点数运算

整数
int
printf("%d",...)
scanf("%d",...)
带小数点的数
double
printf("%f",...)
scanf("%lf",...)

2表达式

一系列运算符结合算子组合,计算一个

a=b+5

  • 运算符:指进行运算的动作
  • 算子:指参与运算的值(常数/变量/返回值)

2.1算术运算符

在这里插入图片描述

例:
计算时间差,输入两个时间,输出相差几分几秒

//同一天时间差计算: 
int main()  
{
	int hour1, minute1;
	int hour2, minute2;
	printf("请输入时间1:几小时几分钟");
	scanf("%d %d", &hour1,&minute1);

	printf("请输入时间2:几小时几分钟");
	scanf("%d %d", &hour2, &minute2);

	int minute1_1 = hour1 * 60 + minute1;
	int minute2_1 = hour2 * 60 + minute2;

	int t = minute2_1 - minute1_1;
	
	printf("相差%d小时%d分钟",t/60,t%60);

}

2.2运算优先级

例:
输入两个整数,输出它们的平均值

int main()
{
	int a, b;
	scanf("%d %d", &a, &b);
	printf("平均值为%f\n", (a + b) / 2.0);
	return 0;
}

在这里插入图片描述

  • 一般自左向右:单目±和赋值=自右向左
  • 单目运算符:只有一个算子(+a;-b)
  • 赋值也是运算:a=6(自右向左结合)
    a=b=6 =>a=(b=6)

例:
计算三年本金复利

int main()
{
	int x;
	scanf("%d", &x);
	//double y = x * (1 + 3.3%)*(1 + 3.3%)*(1 + 3.3%);   %意为取余,关键字
	double y = x * (1 + 0.033)*(1 + 0.033)*(1 + 0.033);
	printf("%f\n", y);
	return 0;
}

2.3变量交换

例:
已知 a=5,b=6,令b=5,a=6

int main()
{
	int a = 5, b = 6, x; //引入中间变量x
	x = a;
	a = b;
	b = x;
	printf("a=%d,b=%d\n", a, b);
	return 0;
}

2.4复合赋值

格式
“+=” “-=” “*=” “/=” “%=”
  • 5个算术运算符与赋值运算符结合起来形成复合赋值运算符
  • 两运算符之间不能有空格
  • 将赋值边算完得到结果,边变量结合
. total += 5;
total=total+5;

2.5递增递减

格式
“++” “–”
  • 单目运算符,算子必须为变量,作用为变量+1/-1
. count++
count += 1;
count=count+1;
  • 前缀后缀
    在这里插入图片描述
    a=1
    a++=1 //a++为a+1之前的值1
    a=2 //副作用a=a+1为2
    ++a=3 //++a为a+1之后的值3
    a=3 //副作用a=a+1为3
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值