2023-04-16 学习记录--C/C++-邂逅C/C++

news2024/10/2 10:28:56

一、固定格式 ⭐️

在这里插入图片描述

stdio的理解: abbr.标准输入输出(standard input/output)。

#include <stdio.h>
int main()
{
   ... // 表达式
   return 0;
}

二、printf语句(输出语句) ⭐️

在这里插入图片描述

(一)、前提【重要

注意:对于最后一个输出的语句,必须在后面加上\n换行符),不然输出结果后面会默认加个%,如下举例:👇🏻

1、不推荐写法 ❎

#include <stdio.h>
int main()
{
    printf("我们来学习C/C++呀"); // 我们来学习C/C++呀%【注意:对于最后一个输出的语句,必须在后面加上\n(换行符),不然输出结果后面会默认加个%】
    return 0;
}
#include <stdio.h>
int main()
{
    printf("我们来学习");
    printf("C/C++呀"); // 我们来学习C/C++呀%【注意:对于最后一个输出的语句,必须在后面加上\n(换行符),不然输出结果后面会默认加个%】
    return 0;
}

在这里插入图片描述

2、推荐写法 ✅

#include <stdio.h>
int main()
{
    printf("我们来学习C/C++呀\n"); // 加上换行符\n
    return 0;
}
#include <stdio.h>
int main()
{
    printf("我们来学习");
    printf("C/C++呀\n"); // 加上换行符\n
    return 0;
}

在这里插入图片描述

(二)、换行符(\n

\nnext line,表示换行操作,光标移动到下一行。

#include <stdio.h>
int main()
{
    printf("我们来学习\nC/C++呀\n");
    return 0;
}
#include <stdio.h>
int main()
{
    printf("我们来学习\n");
    printf("C/C++呀\n");
    return 0;
}

在这里插入图片描述

(三)、制表符(\t

\ttab,表示水平制表空行操作,相当于键盘上的Tab键,不会换行。

#include <stdio.h>
int main()
{
    printf("我们来学习\tC/C++呀\n");
    return 0;
}
#include <stdio.h>
int main()
{
    printf("我们来学习\t");
    printf("C/C++呀\n");
    return 0;
}

在这里插入图片描述

(四)、回车符(\r

\rreturn,表示回车操作,光标回到本行首位置,不会换行;

三、intfloatdoublechar型数据 ⭐️

在这里插入图片描述

  1. int:整数型,用于定义整数类型的数据;int a = 3;
  2. float:单精度浮点型,准确到小数点后六位;float a = 3.14;
  3. double:双精度浮点型,准确到小数点后十二位;double a = 3.14;
  4. char:字符型,用于定义字符类型的数据。char a = 'A';注意:单引号

四、用printf语句输出intfloatdoublechar型数据 ⭐️

在这里插入图片描述

  1. 整数型(int):%d
  2. 单精度浮点型、双精度浮点型(floatdouble):%f
  3. 字符型(char):%c
    在这里插入图片描述
#include <stdio.h>
int main()
{
    /** 使用变量前必须先定义 */
    int a = 5, b;
    double c = 3.14, d;
    char e = 'E', f;
    /** 计算 */
    b = a % 2;  // 求余数 5%2=1
    d = c * 2;  // 6.280000
    f = e + 32; // 'e' 【ASCII码表中,大写字母在前,小写字母在后;大写字母与小写字母的ASCII码值相差32:大写字母+32=小写字母,小写字母-32=大写字母】
    /** 输出结果 */
    printf("b的值为%d\n", b); // int -> %d
    printf("d的值为%f\n", d); // double -> %f
    printf("f的值为%c\n", f); // char -> c%【对于最后一个输出的语句,必须在后面加上\n(换行符)】
    return 0;
}

在这里插入图片描述

补充知识点:💐

  • ASCII码表中,大写字母在前,小写字母在后;
  • 大写字母与小写字母的ASCII码值相差32大写字母+32=小写字母小写字母-32=大写字母

五、用scanf语句输入intfloatdoublechar型数据 ⭐️

1、作用 🌈:scanf语句是让用户输入内容。
2、举例 📚:(让用户输入两个整数型变量:a,b)

  • int a,b; // 自定义整数型变量a b
  • scanf("%d,%d",&a,&b); // 题目让输入几个整数,就写几个%d;引号里面有几个%d,引号外面对应有几个变量,变量前加个&符号。
  1. 整数型(int):%d
  2. 单精度浮点型(float):%f
  3. 双精度浮点型(double):%lf
  4. 字符型(char):%c
    在这里插入图片描述
#include <stdio.h>
int main()
{
    /** 使用变量前必须先定义 */
    int a;    // 整数型
    float b;  // 单精度浮点型型
    double c; // 双精度浮点型型
    char d;   // 字符型
    /** 让用户输入对应值 */
    printf("请输入一个整数值a:\n");
    scanf("%d", &a); // scanf里:int -> %d
    printf("请输入一个小数值b:\n");
    scanf("%f", &b); // scanf里:float ->%f
    printf("请输入一个小数值c:\n");
    scanf("%lf", &c); // scanf里:double -> %lf
    printf("请输入一个字符d:\n");
    scanf("%c", &d); // scanf里:char -> %c
    d = getchar(); // 把键盘输入的第1个字符赋值给变量d。由于缓冲区问题,若不加上这段代码,在输出时,scanf("%c", &d);这行代码会失效,具体解释见下方
    /** 输出结果 */
    printf("a的值为%d\n", a); // printf里:int -> %d
    printf("b的值为%f\n", b); // printf里:float ->%f
    printf("c的值为%f\n", c); // printf里:double -> %f
    printf("d的值为%c\n", d); // printf里:char -> %c
    return 0; // 程序正常运行结束
}

重点】需要注意的是,在读取字符型变量时,可能会遇到缓冲区的问题。由于之前的输入会在缓冲区中留下 换行符,因此在读取字符型变量时,可能会直接读取到换行符,导致 输出不符合预期。可以在读取字符型变量前加入getchar()函数来 清除缓冲区中的换行符,例如 scanf(“%c”, &d);d =getchar();

在这里插入图片描述

六、getchar()语句、putchar()语句 ⭐️

  1. getchar():从键盘上得到某一个字符;
  2. putchar():把某一个字符呈现到屏幕上。

在这里插入图片描述

#include <stdio.h>
int main()
{
    /** 使用变量前必须先定义 */
    char a, b, c; // 定义3个字符a b c
    /** 让用户输入对应值 */
    printf("请输入您的英文名大写:\n");
    a = getchar(); // 键盘输入的第1个字符赋值给变量a
    b = getchar(); // 键盘输入的第2个字符赋值给变量b
    c = getchar(); // 键盘输入的第3个字符赋值给变量c
    /** 计算 */
    a = a + 32; // 转换成小写字母
    b = b + 32; // 转换成小写字母
    c = c + 32; // 转换成小写字母
    /** 输出结果 */
    putchar(a);    // 输出字符变量a
    putchar(b);    // 输出字符变量b
    putchar(c);    // 输出字符变量c
    putchar('\n'); // 输出换行符(用的单引号)【对于输出型语句,最后一条输出语句的末尾需输出换行符(\n)】
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

七、数学运算 ⭐️

在这里插入图片描述

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

八、三个小知识点 ⭐️

(一)、%m.nf

%m.nf:表示输出的数字总共占m个格,其中小数点后占n个格。

若输出后 数字占格不够,其处理步骤是:💐

  • 第1步📚、观察小数点后占格是否等于n,若不等于,就在小数点后的值后面补所需个数的0
  • 第2步📚、在第1步处理后的基础上,计算数字总占格数是否等于m,若不等于,则 判断m的正负
    • 1、若m,在数字补所需个数的空格
    • 2、若m,在数字补所需个数的空格

example1:🎈

举例 🌈:double a=3.67; printf("输出的a为%7.4f\n",a);
推论 📚:由已知条件可知:m=7>0n=4,通过上面处理步骤可知:3.67需补两个03.6700需补一个空格,所以最终结果为:
结果 💐:输出的a为 3.6700

#include <stdio.h>
int main()
{
    /** 使用变量前必须先定义 */
    double a = 3.67;
    /** 输出结果 */
    printf("输出的a为%7.4f\n", a); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

example2:🎈

#include <stdio.h>
int main()
{
    /** 使用变量前必须先定义 */
    double a, b, c;
    /** 赋值 */
    a = 3.67;
    b = 5.43;
    c = 6.21;
    /** 输出结果 */
    printf("设定的是%5.2f,b是%-5.2f,c是%7.4f\n", a, b, c); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述
在这里插入图片描述

(二)、%e

1、%e的定义

%e:以科学计数法的形式来表现。
%e默认 小数点后面6位数,然后e+0几总共占4个格。

在这里插入图片描述

比如 🌈:printf("身高是%e厘米\n", 123.456);
推论 📚:

  • 因为:10^2=e+02, 10^3=e+03。。。以此类推;
  • 所以123.456=1.23456*10^2=1.23456e+02(未完);
  • 又因为 “%e默认小数点后面取6位数,然后e+0几总共占4个格。”,而1.23456小数点后是5位,
  • 所以需在6后面补个0,即上面=1.234560e+02。

最终结果为 💐:身高是1.234560e+02厘米

#include <stdio.h>
int main()
{
    /** 输出结果 */
    printf("身高是%e厘米\n", 123.456); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

2、%e之间也可以加小数表示限制

在这里插入图片描述

比如 🌈:printf("身高是%10.2e厘米\n", 123.456);
推论 📚:%10.2e表示总共10格,小数点后占2格;又因为1.23e+02占了8格 且 10>0,所以还需在前面补两个空格
最终结果 💐:身高是 1.23e+02厘米

#include <stdio.h>
int main()
{
    /** 输出结果 */
    printf("身高是%10.2e厘米\n", 123.456); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

(三)、(int)(表达式)

(int)(表达式):将表达式结果强制转成整形(即抹去表达式结果中的小数点,向下取整)。

example1:🎈

题目:求9999.999的千位数。

#include <stdio.h>
int main()
{
    /** 使用常量/变量前必须先定义 */
    float a = 9999.999; // 自定义常量a
    int b;              // 自定义变量b
    /** 计算 */
    b = (int)(a / 1000);
    /** 输出结果 */
    printf("%f的千位数是%d\n", a, b); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

example2:🎈

题目:输入一个大于0小于999的可以带小数的数字,并输出其个位、十位以及百位数字。

#include <stdio.h>
int main()
{
    /** 使用常量/变量前必须先定义 */
    double a;         // 自定义一个大于0小于999可为小数的值a
    int ge, shi, bai; // 自定义变量ge(个位数)、shi(十位数)、bai(百位数)
    /** 用户输入 */
    printf("请输入一个大于0小于999可为小数的值:\n"); // 提示信息
    scanf("%lf", &a); // 用户输入a的值
    /** 计算 */
    bai = (int)(a / 100); // 因为a最多是3位数,所有先求出它的百位数 eg. 321.1/100=3.211;(int)(3.211)=3 即321.1的百位数是3
    shi = (int)((a - bai * 100) / 10);
    ge = (int)(a - bai * 100 - shi * 10);
    /** 输出结果 */
    printf("个位数字%d\n", ge);
    printf("十位数字%d\n", shi);
    printf("百位数字%d\n", bai); // 记得加换行符\n
    /** 程序正常运行结束 */
    return 0;
}

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序组件化开发

前言 随着小程序的普及&#xff0c;越来越多的开发者开始使用小程序进行开发&#xff0c;而小程序的组件化开发已经成为了一种标配的开发模式。本文将深入介绍小程序组件化开发的相关知识&#xff0c;包括组件的定义、生命周期、通信和使用等方面&#xff0c;帮助大家更好地理解…

小程序WebSocket详解

1&#xff0c;什么是WebSocket&#xff1f; WebSocket是一种用于在Web浏览器和服务器之间进行双向通信的协议&#xff0c;而小程序WebSocket是在小程序中使用WebSocket协议进行双向数据通信的一种技术。它可以在单个TCP连接上进行全双工通信&#xff0c;实现实时、高效的数据通…

cesium加载geoserver发布的mvt服务

cesium 本身并不支持矢量切片的加载&#xff0c;所以需要借助其他工具进行解析。在Canvas中把矢量瓦片绘制好了&#xff0c;以图片形式像WMTS一样向Cesium提供图片服务就行了&#xff0c;当然也可以采用中间件的形式在后台把服务渲染好再以服务形式提供给前端。 方法1&#xf…

第八回:如何使用Stack Widget

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了GirdView Widget,本章回中将介绍 Stack这种Widget&#xff0c;闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 在Flutter中Stack主要用来叠加显示其它的Widget&#xff0c;类似我们日常生活中的楼层或者…

【Unity3D】魔方

1 需求实现 绘制魔方 中基于OpenGL ES 实现了魔方的绘制&#xff0c;实现较复杂&#xff0c;本文基于 Unity3D 实现了 2 ~ 10 阶魔方的整体旋转和局部旋转&#xff0c;详细需求如下&#xff1a; 用户通过选择魔方阶数&#xff0c;渲染指定阶数的魔方&#xff0c;并且可以自动打…

强化学习原理及应用作业之动态规划算法【SYSU_2023SpringRL】

强化学习原理及应用作业之动态规划算法【SYSU_2023SpringRL】 题目描述:任务一:动态规划方法一、策略迭代算法1、代码2、结果3、思路讲解策略评估策略提升二、价值迭代算法1、代码2、结果3、思路讲解算法整个流程总结题目描述: 本次实践作业将在以下环境进行: 该环境由一…

doris学习之路(一)初识Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。基于此&#xf…

win10+Ubuntu双系统安装教程

1、下载Ubuntu镜像文件 Ubuntu各个版本的安装镜像文件可以从华为云下载&#xff1a; http://repo.huaweicloud.com/ubuntu-releases/ Ubuntu桌面版的安装镜像文件名为&#xff1a;ubuntu-<版本号>-desktop-amd64.iso 2、下载安装镜像工具 用win32diskImage 网址为Win…

初始c++语法

我们在C语言的基础之上进行c语言的学习。对于我们的c语言来说&#xff0c;c兼容C语言&#xff0c;所以我们以前编写的C语言的程序在c平台上也是可以运行的。唯一不同的就是我们的c对于我们C语言的部分语法做出了优化以及引入了面向对象的概念。所以在刚开始学习c的时候我们可以…

真题详解(归并)-软件设计(五十三)

真题详解&#xff08;UML部署图&#xff09;-软件设计&#xff08;五十二)https://blog.csdn.net/ke1ying/article/details/130233656 语句覆盖<判定覆盖<条件覆盖<路径覆盖。 2、ISO/IEC 9126软件质量模型中对软件质量定义&#xff1a; 易测试性、易分析性、稳定性、…

【FPGA-Spirit_V2】基于FPGA的循迹小车-小精灵V2开发板

&#x1f389;欢迎来到FPGA专栏~基于FPGA的循迹小车 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能…

Contrastive Representation Learning 对比表征学习(二)关键成分

原文翻译自这里 关键成分 大量数据增强 给定一训练样本&#xff0c;在计算其相关损失之前通常需要数据增强技术为该样本添加噪声。适度的数据增强设定对于学习一个优秀的&#xff0c;泛化性好的嵌入特征是至关重要的。其在不改变语义信息的同时将些微变量引入到样本之中&…

Windows环境下实现设计模式——备忘录模式(JAVA版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows环境下如何编程实现备忘录模式&#xff08;设计模式&#xff09;。 不知道大家有没有这样的感觉&#xff0c;看了一大堆编程和设计模式的书&#xff0c;却还是很难理解设计模式&#xff…

【使用ChatGPT自动化】批量转换.csv文件为.xlsx文件

第1次提问&#xff1a; 我&#xff1a;我想使用Python批量转换.csv文件为.xlsx文件&#xff0c;请你提供代码 它&#xff1a;好的&#xff0c;以下是使用Python批量转换.csv文件为.xlsx文件的代码&#xff1a; import os import glob import pandas as pddef csv_to_xlsx(pa…

MATLAB数值运算(六)

目录 实验目的 实验内容 原创代码&#xff0c;仅供参考&#xff0c;不要直接CV呀 ~_~ 实验目的 1&#xff09;掌握定义符号对象和创建符号表达式的方法&#xff1b; 2&#xff09;掌握符号运算基本命令和规则&#xff1b; 3&#xff09;掌握符号表达式的运算法则以及符号矩阵…

A100 Jeston TX1TX2使用教程-接口说明

EdgeBox_Umate_A100是一款嵌入式人工智能计算机&#xff0c;能够为各类终端设备赋予人工智能的能力&#xff0c;降低终端智能的开发门槛。EdgeBox_Umate_A100搭载了移动处理器——NVIDIA Jetson TX1&#xff0c;并且兼容TX2&#xff0c;是最适合边缘计算的高性能平台。 A100 算…

【Javascript - 力扣每日一题】13. 罗马数字转整数

题目描述 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;即为…

【黑马2023大数据实战教程】VMWare虚拟机部署HDFS集群详细过程

文章目录 部署HDFS集群1.配置workers:2.配置hadoop-env.sh文件3.配置core-site.xml文件4.配置hdfs-site.xml文件准备数据目录分发Hadoop文件夹配置环境变量授权为hadoop用户格式化文件系统错误排查方法!! 视频&#xff1a;黑马2023 VMWare虚拟机部署HDFS集群 注意&#xff01;这…

linux代码检测工具valgrind之内存检测memcheck

1、安装命令&#xff1a; $ sudo apt-get install valgrind 安装成功如下&#xff1a; 检测版本命令&#xff1a;$ valgrind --version 2、valgrind检测工具tool介绍 &#xff08;1&#xff09;Memcheck是一个内存错误检测器。 &#xff08;2&#xff09;Cachegrind是缓存…

C++语法(19)---- 模拟AVL树

C语法&#xff08;18&#xff09;---- set和map_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130228232?spm1001.2014.3001.5501 目录 1.AVL树的概念 2.节点定义 3.AVL树的类实现 1.类定义 2.insert 1.全代码实现 2.思考角度 3.平衡因…