第二章

算找零

[!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/)系统注册一个账号,点你自己的用户名,进入“个人中心”,做两件重要的事情:

  1. 个人中心里面有一个“中国大学MOOC 绑定”。在另一个浏览器窗口或标签页里登录中国大学MOOC,然后在拼题啊的窗口点“绑定”,就把两个系统的账号联系起来啦~ 将两个系统的账号绑定后,在拼题啊的做题成绩就能回到中国大学MOOC了。
  2. 在个人中心的“应邀做题”那里输入邀请码:679f22bc5b5bb0da,点击“接受邀请”,就可以看到我们的补充练习题啦。

以后可以直接从拼题啊的首页点“进入题库”,在“中M23春入门练习”这个题目集中完成作业。

请注意:以下视频中的题目集和邀请码是2018春学期的,和2023春学期的不同。2018春学期的题目集已经关闭了,请使用2023春学期的邀请码。

来自: 程序设计入门——C语言_中国大学MOOC(慕课)

posted @ 2024-02-16 10:48  ChangJianhui  阅读(37)  评论(0)    收藏  举报