合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

上一篇:邂逅C/C++(上)

一、if语句 ⭐️

(一)、格式

if(语句1执行条件){。。。(语句1)}else if(语句2执行条件){。。。(语句2)}。。。else{。。。(语句n)}

注意 :若if/else if/else后的语句只有一条时,其大括号可以省略

(二)、举例

需求:输入两个实数a、b,按数值由小到大的顺序输出这两个数

/** * 需求:输入两个实数a、b,按数值由小到大的顺序输出这两个数*/#include int main(){/** 使用变量/常量前必须先声明 */double a, b, t; // t为中间变量/** 引导用户输入两个实数a、b */printf("请输入两个实数,以逗号隔开:\n"); // 提示信息scanf("%lf,%lf", &a, &b);// 用户输入/** 实现两个数之间的升序(从小到大排序):若a>b,则两者交换位置 */if (a > b){t = a; // 把a赋值给中间变量ta = b; // 把b赋值给ab = t; // 把中间变量t(此时为a的值)赋值给b,从而实现a、b位置的交换}/** 输出结果 */printf("排序后的结果为:%f,%f\n", a, b); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

二、常见表达式形式 ⭐️

1、赋值表达式(=

比如a=1; 就是把1赋值给变量a

2、算术表达式/数值表达式

+ - * /
求余%

3、关系表达式

大于>
大于等于>=
小于<
小于等于<=
等于==
不等于!=

4、逻辑表达式

(两边均满足):&&
(两边满足一个):||
(取反):!

5、三目表达式

格式表达式1 " /> : printf("咋回事涅\n"); // 回答正确

example:

需求:输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。

/** * 需求:输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。 */#include int main(){/** 使用变量/常量前必须先声明 */char ch; // 字符/** 引导用户输入一个字符 */printf("请输入一个字符:\n"); // 提示信息scanf("%c", &ch); // 用户输入/** 若是大写字母,则将其转换成小写字母 */ch >= 'A' && ch <= 'Z' ? ch += 32 : ch;/** 输出结果 */printf("最后得到的字符是:%c\n", ch); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

知识点

  • 1、判断是否是大写字母ch >= 'A' && ch <= 'Z'
  • 2、判断是否是小写字母ch >= 'a' && ch <= 'z'
  • 3、大小写字母相互转换:【ASCII码表里,大写字母前面小写字母后面,相差32ASCII码值】
    • 大写字母 = 小写字母 - 32;
    • 小写字母 = 大写字母 + 32;

三、switch语句 ⭐️

(一)、格式

switch (整型变量或字符型变量){case 常量1:语句1;break;case 常量2:语句2;break;。。。 case 常量n:语句n;break;default:语句n+1;break;}

注意switch()括号中变量类型整型字符型

(二)、多个case标记共用一组语句

比如:常量1、常量2共用一组语句,即常量1和常量2时都会执行该语句,写法如下:

switch (整型变量或字符型变量){case 常量1:case 常量2:常量1、常量2共用语句;break;。。。 case 常量n:语句n;break;default:语句n+1;break;}

(三)、举例

需求:有ABCD四等级,A等、B等、C等对应60~100,D等对应<60,请编一程序,成绩等级由键盘输入,输出分数段。

/** * 需求:有ABCD四等级,A等、B等、C等对应60~100,D等对应<60,请编一程序,成绩等级由键盘输入,输出分数段。 */#include int main(){/** 使用变量/常量前必须先声明 */char grade; // 等级/** 引导用户输入成绩等级 */printf("请输入成绩等级(大写字母):\n");scanf("%c", &grade);/** switch语句【注意:字符用的是单引号】*/switch (grade){case 'A':case 'B':case 'C':// A、B、C等均执行这个语句printf("该生分数为60~100\n"); // 最后一个输出语句,一定要记得加上换行符(\n)break;case 'D':printf("该生分数为<60\n"); // 最后一个输出语句,一定要记得加上换行符(\n)break;default:printf("输入错误\n"); // 最后一个输出语句,一定要记得加上换行符(\n)break;}/** 程序正常运行结束 */return 0;}

四、用while语句循环做数学运算 ⭐️

若用while语句循环求n个数相加n个数相乘,其通用解题思路如下:

  • 1、写出固定格式
  • 2、定义三个变量:【注意:为防止溢出,定义时应注意正确定义第二、三变量类型
    • int i=1
    • 若是求和sum=0,若是求乘积product=1
    • a=第一项的值
  • 3、加入while语句
  • 4、找出相加或相乘的总项数,然后在 while()括号里 写上:i<=总项数
  • 5、在大括号里写入三个表达式
    • i+=1;
    • 若是求和sum+=a; ,若是求乘积product*=a;
    • a的形式表现出第n项与第(n-1)项的关系表达式
      如:第n项=第(n-1)项加2 写成 a+=2;(用a替换 第n项第(n-1)项
  • 6、输出结果检查循环的开头与结尾

example1:

需求:求2+4+6+…+100

/** * 需求:求2+4+6+...+100 */#include int main(){/** 定义三个变量 */int i = 1, sum = 0, a = 2;/** while语句 */while (i <= 50) // 50为相加的总项数{i += 1;sum += a;a += 2; // 由题干观察可知,第n项与第(n-1)项的关系式为:第n项=第(n-1)项+2}/** 输出结果 */printf("计算结果是:%d\n", sum); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

example2:

需求 :求2×4×6×…×100

注意】坑—— 溢出:因为从2乘到100是一个很大的值,超出任何整型的范围,所以最终乘积结果product需使用double来定义(因为我是入门,所以先不考虑精度进行处理了),不然输出为0

/** * 需求:求2×4×6×...×100 */#include int main(){/** 定义三个变量 */int i = 1;double product = 1, a = 2; // 注意:因为从2乘到100是一个很大的值,超出任何整型的范围,所以最终乘积结果product需使用double来定义,不然输出为0/** while语句 */while (i <= 50) // 50为相乘的总项数{i += 1;product *= a;a += 2; // 由题干观察可知,第n项与第(n-1)项的关系式为:第n项=第(n-1)项+2}/** 输出结果 */printf("计算结果是:%f\n", product); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

example3:

需求:求1到20的阶乘的和(1! + 2! + … + 20!)。

/** * 需求:求1到20的阶乘的和(1! + 2! + ... + 20!) */#include int main(){/** 定义三个变量 */int i = 1;long long sum = 0, a = 1; // 【注意】使用long long类型防止溢出;因为1的阶乘是1,所以a=1/** while语句 */while (i <= 20) // 20为相加的总项数{i += 1;sum += a; // 累加阶乘a *= i; // 计算阶乘 由题干观察可知,第n项与第(n-1)项的关系式为:第n项=第(n-1)项*n}/** 输出结果 */printf("计算结果是:%lld\n", sum); // 【注意】printf中,与long long类型对应的是%lld;最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

坑:【重要

  • sum(总和)、a(各项值)需要使用long long类型防止溢出
  • printf中,与long long类型对应的是%lld

五、用while语句循环 ⭐️

(一)、格式

根据条件是否满足判断是否执行。

while(条件){。。。}

(二)、举例

需求:输出100~300之间(包括100与300)的整数。

/** * 需求:输出100~300之间(包括100与300)的整数。 */#include int main(){/** 使用变量/常量前必须先定义 */int i = 99;/** while语句 */while (i < 300){i += 1;printf("%d\t", i); // \t相当于tab键}printf("\n"); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

六、用break语句提前终止循环 ⭐️

break:是跳出整个循环系不再执行这个循环了

七、用continue语句提前结束本次循环 ⭐️

(一)、定义

continue只是这次循环结束了不再执行continue后的语句,而直接跳入了下一次循环

(二)、举例

需求:输出100~300之间(包括100与300)不能被4整除的整数。

/** * 需求:输出100~300之间(包括100与300)不能被4整除的整数。 */#include int main(){/** 使用变量/常量前必须先定义 */int i = 99;/** while语句 */while (i < 300){i += 1;// 若能被4整除,就不执行continue后面的语句(这里是输出对应整数值),直接跳入下一次循环if (i % 4 == 0)continue;printf("%d\t", i); // \t相当于tab键}printf("\n"); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

八、用do...while语句循环 ⭐️

(一)、格式

do...while语句是一来就先执行一次再根据条件是否满足判断是否执行

do{。。。} while (条件); // 注意要加分号

(二)、举例

需求:求2+4+6+…+100

/** * 需求:求2+4+6+...+100 */#include int main(){/** 定义三个变量 */int i = 1, sum = 0, a = 2;/** while语句 */do{i += 1;sum += a;a += 2;// 由题干观察可知,第n项与第(n-1)项的关系式为:第n项=第(n-1)项+2} while (i <= 50); // 50为相加的总项数/** 输出结果 */printf("计算结果是:%d\n", sum); // 最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

九、用for语句循环 ⭐️

(一)、格式

for(语句1;语句2;语句3){。。。}

(二)、举例

需求:求1到20的阶乘的和(1! + 2! + … + 20!)

写法一、

/** * 需求:求1到20的阶乘的和(1! + 2! + ... + 20!) */#include int main(){/** 定义三个变量 */int i = 1;long long sum = 0, a = 1; // 【注意】使用long long类型防止溢出;因为1的阶乘是1,所以a=1/** for语句 */for (; i <= 20;) // 语句1和语句3可以提出来,但分号必须保留;20为相加的总项数{a *= i; // 计算阶乘 由题干观察可知,第n项与第(n-1)项的关系式为:第n项=第(n-1)项*nsum += a; // 累加阶乘i += 1;}/** 输出结果 */printf("计算结果是:%lld\n", sum); // 【注意】printf中,与long long类型对应的是%lld;最后一个输出语句,一定要记得加上换行符(\n)/** 程序正常运行结束 */return 0;}

写法二、

/** * 需求:求1到20的阶乘的和(1! + 2! + ... + 20!) */ #include int main() {int i, j;long long sum = 0; // 使用long long类型防止溢出for (i = 1; i <= 20; i++) {long long factorial = 1; // 阶乘从1开始for (j = 1; j <= i; j++) {factorial *= j; // 计算阶乘}sum += factorial; // 累加阶乘}printf("1! + 2! + ... + 20! = %lld\n", sum);return 0;}

十、n++n-- ⭐️

  1. n++n=n+1n+=1 在功能上是相似的,都是对变量n进行加1操作;
  2. n--n=n-1n-=1 在功能上是相似的,都是对变量n进行减1操作。

十一、数组 ⭐️

详情请查看我的另一篇博文哦~

十二、函数 ⭐️

详情请查看我的另一篇博文哦~

十三、排序的两种方法 ⭐️

  1. 冒泡法/沉底法
  2. 选择法