南哪2022-2-if-for-array

题单介绍

if-for-array。在这一章中我们学会了C语言编程中最基础也是最重要的两种结构:分支结构以及循环结构 以及一种最重要的写法:数组,这使得我们开始有能力处理大量的数据。 if语句,先来看一下用法: ```c if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { printf("是闰年。\n"); } else if (year % 10 == 0) { printf("是个整十数的年份。"); } else { printf("貌似是个年份"); } ``` 当if语句中条件成立的时候,便会执行if语句之后大括号里面的内容,如果条件不成立,且这个if后面有紧接着对应的else的时候,便会执行else之后大括号里面的内容 if语句可以进行嵌套,类似上面的写法,来对某个值进行分类 同时,在使用if-else语句的时候,某CQ希望大家无论语句多少都加上大括号,以避免一些逻辑上的问题,因为有时,if里面仍然有if-else,而如果没有加大括号,编译器便分不清这个else到底是谁的。 如果你想使用多种判断,你可以使用逻辑与(&&)还有逻辑或(||)来连接多个判断。 其它的逻辑判断符号除了相等(==)特别一些(为了和赋值语句区分开),其它的也不太容易错 if判断条件中非0即真,比如: ```c if (1) if (-1) if (a = 100) ``` 这些if条件之后的语句可以执行 而: ```c int n = 0; if (n) //... ``` 这个if之后的语句并不能执行。 for循环,先来看一下写法: ```c for (int i = 1; i <= n; ++i) { printf("*"); } ``` 可以看到,for循环当中我们用两个分号将其分成了三个部分。 第一个部分是初始化部分,在其中可以直接定义一个变量,也可以直接给某个变量附上初值,也可以不填。 第二个部分是判断部分,只有判断条件成立,for循环才会继续。 第三个部分是处理部分,在每次循环结束的时候,这里面的操作都会进行一次。 在每次循环结束并完成for循环中的处理部分后,for循环会进行一次判断部分,如果判断不成立,for循环就会结束。 你可以使用continue语句来直接进入下一次循环 你可以使用break语句来直接跳出循环 我们还学习了数组。数组这东西好理解啊,我们把它想象成一个有限长的数列,数列中的每一个位置上都存储了一个对应类型的变量,我们需要提前指定这个数组的大小,我们也需要通过指定位置来调用某一个元素。 ```c int a[100005]; for (int i = 1; i <= 100000; ++i) { a[i] = i; } ``` a是我们建的数组的名字,我们在后面加上方括号,填上数字来告诉编译器我们想定义一个数组,长度为多少,之后我们就可以通过在方括号里填数组下标的形式来访问某一个特定的元素。 结合for循环和数组,我们便能对大量的数据进行处理,统一读入、统一输出。 一些提示: 当同学们使用for循环的时候,可以灵活运用内部的三大部分,不一定每一个部分都要死板的填上东西,只要你的思路没有错误,你可以采取更花式的写法,你也可以把for循环变成下一次要提到的while循环,因为定义和处理部分完全可以不填。 这便是2-if-for-array的大致内容,某CQ希望同学们在题单的习题中能够练习掌握这些基本结构。 我们在结尾附上位运算的运算法则: 与运算(&): 0 & 0 = 0, 1 & 1 = 1, 0 & 1 = 0, 1 & 0 = 0 或运算(|): 0 | 0 = 0, 1 | 1 = 1, 0 | 1 = 1, 1 | 0 = 1 异或运算(^) 0 ^ 0 = 0, 1 ^ 1 = 0, 1 ^ 0 = 1, 0 ^ 1 = 1 位移运算(<<、>>) a << x将a左移x位,相当于乘上2的x次方,右移同理 超出存储范围的位数将被抹除,不足的将填上0 灵活地运用位运算,能让代码更加简洁方便,具体的使用方法留给大家去思考。 不过可以介绍一个判断是否能被2整除的方式: n & 1 因为位运算是每一位上都进行相同的运算,所以n与上一,后面都是零,实际上就判断出了n的第一位上有没有1,如果有,那么n是奇数,如果没有,那么n是偶数 注意位运算的运算优先级是低于加减,这也意味着同学们在运算方面需要多加注意,该加括号的时候不要嫌麻烦。

题目列表

  • [NOIP 2002 普及组] 级数求和
  • [NOIP 2005 普及组] 校门外的树
  • [NOIP 2004 普及组] 不高兴的津津
  • [NOIP 2004 提高组] 津津的储蓄计划
  • 车厢重组
  • 子数整数
  • 欢乐的跳
  • [NOIP 2012 普及组] 质因数分解
  • [NOIP 2010 普及组] 数字统计
  • [USACO1.1] 你的飞碟在这儿 Your Ride Is Here
  • 低洼地
  • 最长连号
  • 小鱼比可爱
  • [NOIP 2016 普及组] 买铅笔
  • 【深基4.习9】打分
  • 【深基3.例3】闰年判断