算找零
[!NOTE] 需要:
1.有地方放输入的数字
2.有办法输入数字
3.输入的数字能参与计算
#include <stdio.h>
int main()
{
int price = 0;
printf("请输入金额(元)");
scanf("%d", &price);
int change = 100 - price;
printf("找您%d元\n", change);
return 0;
}
#include <stdio.h>
int main()
{
printf("请输入金额");
return 0;
}
输入是以行为单位进行的,行的结束标志就是你按下了回车键。在你按下回车之前,你的程序不会读到任何东西
C语言的关键字
关键字 | 关键字 | ||||||
---|---|---|---|---|---|---|---|
auto | long | ||||||
break | register | ||||||
case | return | ||||||
char | short | ||||||
const | signed | ||||||
comtinue | sizeof | ||||||
default | static | ||||||
da | struct | ||||||
double | switch | ||||||
else | typedef | ||||||
enum | union | ||||||
extern | unsigned | ||||||
float | void | ||||||
for | volatile | ||||||
goto | while | ||||||
if | inline | ||||||
int | restrict |
不需要背诵,因为这个之后学到就会知道,或者编译出错编译器会告诉错误。
变量
定义:变量是一个保存数据的地方
变量的一般形式:<类型名称> <变量名称>;
- int price;
- int amount;
- int price, amount;
变量的名字是一种标识符,意思是它是用来识别这个和那个的不同名字。
标识符的构造规则: - 标识符只能由字母、数字和下划线组成,数字不能出现在第一个位置上
- C语言的关键字不能做标识符
变量初始化
- <类型名称> <变量名称> = <初始值>;
- int amount = 100;
- int price = 0, amount = 100;
表达式定义
变量类型
C是一种有类型的语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。
变量定义
读整数
- scanf("%d", &price);
f
代表格式化的意思- 要求scanf这个函数读入下一个整数,读到的结果赋值给变量price
- 小心price前面的&
- 出现在scanf中的东西一定是你要输入的东西,而不是它要给你展示的东西
常量
- int change = 100 - price;
- 固定不变的数是常数。直接写在程序里,我们称作直接量(literal).
- 更好的方式是定义一个常量:
- const int AMOUNT = 100;
- 用一个有意义的名字可以让别人理解你的数字是什么
- 方便修改这个数值
const - const是一个修饰符,加在int的前面,用来给这个变量加上一个const(不变的)属性。
- 这个const属性表示这个变量的值一旦初始化就不能再修改了
- 如果试图对常量做修改,编译器会报错
- 对于一个const变量,我们一般习惯大写
算找零改进
# include <stdio.h>
int main()
{
int amount = 100;
int price = 0;
printf("请输入金额(元):");
scanf("%d", &price);
printf("请输入票面:");
scanf("%d", &amount);
int change = amount - price;
printf("找您%d元。\n", change);
return 0;
}
#include <stdio.h>
int main()
{
int a;
int b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}
- scanf("%d %d", &a, &b);
- 连续输入中间空格可以
- 不连续输入,中间回车也可以
- 先回车后输入也可以
- scanf函数一直在等输入的两个数,只要没输入就不会执行
表达式
- 运算符(operator)是指进行运算的动作,比如加法运算符"+",减法运算符"-"。
- 算子(operand)是指参与运算的值,这个值可能是常数,也可能是变量,还可能是一个方法的返回值
计算时间差
#include <stdio.h>
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
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);
return 0;
}
- hour * 60 + minute->转换为分钟为单位
- t/60->小时部分;t%60->分钟
求平均值
输入两个整数,输出它们的平均值
#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d", &a, &b);
double c = (a+b)/2.0; //2.0是为了保留小数
printf("%d和%d的平均值=%f\n", a, b, c);
return 0;
}
运算符优先级
- 单目运算符,只有一个算子,例如-a,运算符“-”只有一个算子a
- 运算符“减-”,a-b, 运算符“-”两边有两个算子,分别是a和b
- a-b,这个表达式先做"-b"这个运算再做a(-b)
赋值
C语言特殊的地方:赋值=,是一个运算符
赋值也是运算,也有结果
a=6的结果是a被赋予的值,也就是6
a=b=6->a=(b=6)
赋值运算的优先级比较低
不要做嵌套的结合
交换两个变量
- ==程序表达的是顺序执行的动作,而不是关系
- a=b; b=a;是依次执行的,结果使得a和b都得到b原来的值
断点作用:让程序停在这一行,这一行还没有执行,即将执行
#include <stdio.h>
int main()
{
int a=5;
int b=6;
int t;
t=a;
a=b;
b=t;
printf("a=%d, b=%d\n", a, b);
return 0;
}
在程序中交换变量的套路:使用一个中间变量t存放值
翁恺说:
学程序设计和学外语一样,仅仅知道一些基本的语法是不够的,我们还需要一些套路,遇到这件事人们是怎么说的,怎么做的。这些套路像学外语一样,通过阅读不断积累,遇到这件事看人们是怎么做的,慢慢地也就学会了一些套路。
复合赋值和递增递减运算符
复合赋值
递增递减运算符
- “++"和”--“是两个特殊的运算符,它们是
单目运算符
,这个算子还必须是变量。 - 这两个运算符分别叫做递增和递减运算符,它们的作用就是给这个变量+1或者-1.
- count++;
- count += 1;
- count = count + 1;
前缀和后缀
- ++和--可以放在变量前,叫做前缀形式;也可以放在变量后,叫做后缀形式。
- a++的值是a加1之前的值,而++a的值是加1后的值,但无论哪儿一个,a自己的值都加1了。
- a++ == a,++a == a + 1,a == a + 1。
#include <stdio.h>
int main()
{
int a;
a = 10;
printf("a++=%d\n", a++);
printf("a=%d\n", a);
printf("++a=%d\n", ++a);
printf("a=%d\n", a);
return 0;
}
PAT规则
在拼题啊做题
我们在拼题啊布置了做大量编程练习的习题集。要在拼题啊做题,首先要去拼题啊(https://pintia.cn/)系统注册一个账号,点你自己的用户名,进入“个人中心”,做两件重要的事情:
- 个人中心里面有一个“中国大学MOOC 绑定”。在另一个浏览器窗口或标签页里登录中国大学MOOC,然后在拼题啊的窗口点“绑定”,就把两个系统的账号联系起来啦~ 将两个系统的账号绑定后,在拼题啊的做题成绩就能回到中国大学MOOC了。
- 在个人中心的“应邀做题”那里输入邀请码:679f22bc5b5bb0da,点击“接受邀请”,就可以看到我们的补充练习题啦。
以后可以直接从拼题啊的首页点“进入题库”,在“中M23春入门练习”这个题目集中完成作业。
请注意:以下视频中的题目集和邀请码是2018春学期的,和2023春学期的不同。2018春学期的题目集已经关闭了,请使用2023春学期的邀请码。
标签:变量,int,price,运算符,printf,第二章,scanf From: https://www.cnblogs.com/ChangJianhui-080910T/p/18016974