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

这篇具有很好参考价值的文章主要介绍了2023-04-23 学习记录--C/C++-邂逅C/C++(中)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

上一篇:邂逅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赋值给中间变量t
        a = b; // 把b赋值给a
        b = t; // 把中间变量t(此时为a的值)赋值给b,从而实现a、b位置的交换
    }
    /** 输出结果 */
    printf("排序后的结果为:%f,%f\n", a, b); // 最后一个输出语句,一定要记得加上换行符(\n)
    /** 程序正常运行结束 */
    return 0;
}

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

二、常见表达式形式 ⭐️

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;
}

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

知识点 💐:

  • 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;
}

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

四、用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;
}

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

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;
}

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

example3:🎈

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

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

/**
 * 需求:求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;
}

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

坑💥:【重要

  • 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;
}

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

六、用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;
}

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

八、用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;
}

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

九、用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)项*n
        sum += a; // 累加阶乘
        i += 1;
    }
    /** 输出结果 */
    printf("计算结果是:%lld\n", sum); // 【注意】printf中,与long long类型对应的是%lld;最后一个输出语句,一定要记得加上换行符(\n)
    /** 程序正常运行结束 */
    return 0;
}

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

写法二、🍒
/**
 * 需求:求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;
}

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

十、n++、n-- ⭐️

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

十一、数组 ⭐️

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

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

十二、函数 ⭐️

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

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

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

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

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

2023-04-23 学习记录--C/C++-邂逅C/C++(中)文章来源地址https://www.toymoban.com/news/detail-431421.html

到了这里,关于2023-04-23 学习记录--C/C++-邂逅C/C++(中)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【HDC.Cloud 2023】小白与AI在华为云Codelabs的第一次邂逅

    从事开发两年的时间,每天都在业务场景和代码中辗转反侧,与大多数开发者同学一样,每天看着枯燥的代码非常非常无聊… 突然!偶然的机会!公司需要用到AI相关的内容,这不仅勾起了公司的兴趣,也勾起了我对AI的兴趣(也不算偶然,最近人工智能很多产品的横空出世

    2024年02月13日
    浏览(76)
  • (学习日记)2023.04.28

    写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几

    2024年02月07日
    浏览(30)
  • (学习日记)2023.04.25

    写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几

    2024年02月08日
    浏览(67)
  • cesium学习记录04-坐标系

    这些坐标定义了在用户的显示屏上的像素位置。例如,一个点的屏幕坐标可能是(x, y),其中x是从屏幕的左边开始的像素数,y是从屏幕的顶部开始的像素数。 这是一个三维空间中的点的坐标。在Cesium中,地球通常在(0,0,0)笛卡尔坐标中被建模。其他对象(如飞机或卫星)的位置

    2024年02月13日
    浏览(32)
  • 华为昇腾服务器 ubuntu20.04 Atlas中心推理卡 23.0.RC3 NPU驱动和固件安装指南 02(Atlas 300V pro)(Ascend 310P)(cann)安装流程记录

    参考文章:Atlas 中心推理卡 23.0.RC3 NPU驱动和固件安装指南 02 参考文章:https://www.hiascend.com/document/detail/zh/quick-installation/23.0.RC3/quickinstg/800_3000/quickinstg_800_3000_0013.html 首先看版本配套表,比如我们推理卡是Atlas 300V pro,要看系统是不是支持Atlas 300V pro?找到合适版本的系统(内

    2024年02月01日
    浏览(36)
  • Ubuntu 20.04.06 PCL C++学习记录(十八)

    @[TOC]PCL中点云分割模块的学习 参考书籍:《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,,PCL版本为1.10.0,CMake版本为3.16 PCL中实现欧式聚类提取。在点云处理中,聚类是一种常见的任务,它将点云数据划分为多个独立的簇或集群。每个簇代表点云中的一个独立物体或

    2024年04月16日
    浏览(32)
  • Ubuntu 20.04.06 PCL C++学习记录(十九)

    @[TOC]PCL中点云分割模块的学习 参考书籍:《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,,PCL版本为1.10.0,CMake版本为3.16 源代码 CMakeLists.txt 运行结果 函数 pcl::RegionGrowing 是 PCL 库中提供的一种区域生长分割算法,它根据点云的几何特征(如法向量、曲率等)将点云

    2024年04月16日
    浏览(42)
  • 学习记录:2023.4.28

    1、SVG学习: 百度百科:SVG是可缩放矢量图形,是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。应该是一种开放标准的矢量图形语言,可让你设计激动人心的、高分辨率的Web图形页面。用户可

    2024年02月01日
    浏览(34)
  • 学习记录:2023.5.4

    MySQL分页: 使用limit实现分页 LIMIT出现在查询语句的最后,可以使用一个参数或两个参数来限制取出的数据。其中第一个参数代表偏移量:offset(可选参数),第二个参数代表取出的数据条数:rows 在进行分页之前,我们需要先根据数据总量来得出总页数,这需要用到

    2024年02月03日
    浏览(30)
  • 【学习记录】win10 + ubuntu 22.04双系统安装

        因为家里的台式(Windows 10)最近一直频繁蓝屏,再加上Win10之前经常性的资源管理器未响应,对Windows系统逐渐失去了信心,于是想着安装稳定性较好的Linux。以前抵触Linux是因为其人机交互界面没Windows那么直观,但其实是认知有误,Linux其实也有很多交互界面很友好

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包