2023-04-23 学习记录--C/C++-邂逅C/C++(中)

news/2024/12/29 2:10:01/

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

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

一、if语句 ⭐️

(一)、格式 🍭

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

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

(二)、举例 🍭

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

/*** 需求:输入两个实数a、b,按数值由小到大的顺序输出这两个数
*/#include <stdio.h>
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 ? 表达式2 : 表达式3
解析 📚:判断 是否满足表达式1 -> 执行表达式2 -> 执行表达式3
举例 👁:1 < 2 ? printf("回答正确\n") : printf("咋回事涅\n"); // 回答正确

example:🎈

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

/*** 需求:输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。*/#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>
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 <stdio.h>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. 选择法

在这里插入图片描述


http://www.ppmy.cn/news/84016.html

相关文章

【突发奇想 之 vector使用时性能测试】

目录&#xff1a; 前言分析vector不同操作对时间的影响1.for循环中使用 size()成员函数2.初始化时初始化为0&#xff0c;与其他值3.vector分配容量问题4. vector赋值操作5. 遍历&#xff1a;下标和迭代器 总结 前言 打怪升级&#xff1a;第90天 分析vector不同操作对时间的影响…

成功加冕!用友大易获评2023最佳招聘管理软件供应商

人力资源服务业旗帜性商业奖项2023金帜奖(HRFLAG AWARDS)颁奖典礼于近日隆重举行。经过3个月的评选&#xff0c;用友大易从615家人力资源服务机构中脱颖而出&#xff0c;最终荣获「2023最佳招聘管理软件供应商」奖项。 2023金帜奖(HRFLAG AWARDS)是人力资源服务行业旗帜性的商业…

PMP考试都是什么题?

PMP新版大纲加入了ACP敏捷管理的内容&#xff0c;说是敏捷混合题型占到了 50%&#xff0c;但是这次318的考试&#xff0c;敏捷题占了大半&#xff0c;都说敏捷和情景快要占到80%-90%。 所以有友友说开了四个小时盲盒&#xff0c;题目读不懂&#xff0c;或者觉得4个选项都不对或…

Redhat7.3linux系统防火墙命令总结

在Linux系统部署皕杰报表后&#xff0c;需要关闭防火墙或者开放报表工具使用的端口&#xff0c;才能通过浏览器访问报表。 在linux中如何关闭防火墙或开启端口呢&#xff1f;基本上是基于命令操作。通过几天的实践&#xff0c;总结了有关防火墙的操作命令&#xff0c;现记录如…

从绿色节能趋势看存储资源盘活系统HBlock

数据中心约超过一半的成本是电费&#xff0c;数据存储系统作为数据中心三大件之一&#xff0c;能耗也约占三分之一&#xff0c;面对非结构化数据量的快速增长挑战&#xff0c;以及国家对数据中心绿色节能要求的提高&#xff0c;分布式存储的绿色节能愈来愈加重要。 分布式存储…

本地vue搭建的web网站项目app如何发布到互联网?

对于非专业人来说&#xff0c;提到 Vue并不熟悉。Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建。 简单来说&#xff0c;Vue是干什么用的呢&#xff1f;Vue通过提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用…

如何利用Python中的pymysql库来操作Mysql数据库,看这篇就够啦~

为了使python连接上数据库&#xff0c;你需要一个驱动&#xff0c;这个驱动是用于与数据库交互的库&#xff0c;本文是向大家介绍了如何利用python中的pymysql库来操作mysql数据库。 1、什么是pymysql&#xff1f; pymysql是从python连接到mysql数据库服务器的接口&#xff0c…

LiveGBS GB28181流媒体平台中如何根据各种应用场景提供不同播放权限,满足用户自定义各种播放权限

随着目前对信息安全的越来越重视&#xff0c;视频监控领域的视频流也需要做各种安全策略。视频监控流流媒体平台输出的直播流需要做权限限制&#xff0c;只允许哪些IP访问、只允许哪些用户访问等等各种权限限制。为了满足不同用户不同场景各种不同的播放权限需求&#xff0c;Li…