【0基础到备战蓝桥杯】Day3

由于今天事情比较多,所以学习时间比较少(其实是休息了蛮久),明天补上

1. scanf函数

当我们有了变量,我们需要给变量输入值就可以使用 scanf 函数,如果需要将变量的值输出在屏幕上

的时候可以使用 prinf 函数,下面看一个例子:

#include <stdio.h>
int main()
{
    int score = 0;
    printf("请输入成绩:");
    scanf("%d", &score);
    printf("成绩是:%d\n", score);
return 0;
}

scanf() 函数用于读取用户的键盘输入。

程序运行到这个语句时,会停下来,等待用户从键盘输入。

用户输入数据、按下回车键后, scanf() 就会处理用户的输入,将其存入变量。

注意:变量前面必须加上& 运算符(指针变量除外),因为scanf() 传递的不是值,而是地址,

即将变量i 的地址指向用户输入的值。

如果这里的变量是指针变量(比如字符串变量),那就不用加& 运算符。

scanf() 处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符等。

1.1. scanf的返回值

scanf() 的返回值是一个整数,表示成功读取的变量个数。

如果没有读取任何项,或者匹配失败,则返回0

如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF (-1)

EOF - end of file 文件结束标志

1.2. 占位符

scanf() 常用的占位符如下,与printf() 的占位符基本一致。

  • %c :字符。
  • %d :整数。
  • %f : float 类型浮点数。
  • %lf : double 类型浮点数。
  • %Lf : long double 类型浮点数。
  • %s :字符串。
  • %[] :在方括号中指定一组匹配的字符(比如%[0-9] ),遇到不在集合之中的字符,匹配将会停止。

上面所有占位符之中,除了%c 以外,都会自动忽略起首的空白字符。%c 不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。

如果要强制跳过字符前的空白字符,可以写成scanf(" %c", &ch) ,即%c 前加上一个空格,表示跳过零个或多个空白字符。

1.3. 占位符%s

它其实不能简单地等同于字符串。它的规则是,从当前第一个非空白字符开始读起,直到遇到空白字符(即空格、换行符、制表符等)为止。因为%s 不会包含空白字符,所以无法用来读取多个单词,除非多个%s 一起使用。这也意味着,scanf() 不适合读取可能包含空格的字符串,比如书名或歌曲名。另外, scanf() 遇到%s 占位符,会在字符串变量末尾存储一个空字符\0

scanf() 将字符串读入字符数组时,不会检测字符串是否超过了数组长度。所以,储存字符串时,很可能会超过数组的边界,导致预想不到的结果。为了防止这种情况,使用 %s 占位符时,应该指定读入字符串的最长 度,即写成%[m]s ,其中的[m] 是一个整数,表示读取字符串的最大长度,后面的字符将被丢弃。

1.4. 赋值忽略符

上面示例中,如果用户输入 2020-01-01 ,就会正确解读出年、月、日。问题是用户可能输入其他格式,比如2020/01/01 ,这种情况下, scanf() 解析数据就会失败。

为了避免这种情况, scanf() 提供了一个赋值忽略符(assignment suppression character) *

只要把* 加在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃。

上面示例中, %*c 就是在占位符的百分号后面,加入了赋值忽略符* ,表示这个占位符没有对应的变量,解读后不必返回。

内容概要:本文档介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行仿真分析的技术方案,重点在于模拟超MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]宽带脉冲信号通过天线结构的传播过程,并计算微带结构的回波损耗参数(S11),以评估天线的匹配性能和辐射特性。该方法通过建立三维电磁场模型,精确求解麦克斯韦方程组,适用于高频电磁仿真,能够有效分析天线在宽频带内的响应特性。文档还提及该资源属于一个涵盖多个科研方向的综合性MATLAB仿真资源包,涉及通信、信号处理、电力系统、机器学习等多个领域。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程及数值仿真的高校研究生、科研人员及通信工程领域技术人员。; 使用场景及目标:① 掌握3D FDTD方法在天线仿真中的具体实现流程;② 分析微带天线的回波损耗特性,优化天线设计参数以提升宽带匹配性能;③ 学习复杂电磁问题的数值建模与仿真技巧,拓展在射频与无线通信领域的研究能力。; 阅读建议:建议读者结合电磁理论基础,仔细理解FDTD算法的离散化过程和边界条件设置,运行并调试提供的MATLAB代码,通过调整天线几何尺寸和材料参数观察回波损耗曲线的变化,从而深入掌握仿真原理与工程应用方法。
虽然给定引用未直接提及备战蓝桥杯 EDA 赛道所需的基础知识,但结合普遍情况,备战蓝桥杯 EDA 赛道通常需要以下几方面基础知识: #### 硬件基础 - **数字电路**:了解数字逻辑基础,如逻辑门电路、组合逻辑电路和时序逻辑电路的分析与设计。掌握触发器、计数器、寄存器等基本数字电路元件的原理和应用,这是进行 EDA 设计的基石。例如,设计一个简单的计数器电路时,需要运用数字电路的知识来确定其逻辑结构和工作原理。 - **模拟电路**:熟悉基本的模拟电路概念,如放大器、滤波器等。虽然 EDA 赛道更侧重于数字设计,但模拟电路知识有助于理解混合信号系统和芯片的整体性能。 #### 编程语言 - **Verilog 或 VHDL**:这两种是 EDA 设计中常用的硬件描述语言。以 Verilog 为例,需要掌握其语法结构,包括模块定义、端口声明、信号类型、赋值语句、过程块等。例如,使用 Verilog 描述一个简单的与门: ```verilog module and_gate ( input a, input b, output y ); assign y = a & b; endmodule ``` - **Python**:在 EDA 流程中,Python 可用于脚本编写、自动化测试和数据处理。例如,使用 Python 编写脚本对设计文件进行批量处理,或者对仿真结果进行数据分析。 #### EDA 工具使用 - **设计工具**:掌握至少一种主流的 EDA 设计工具,如 Quartus Prime(适用于 Altera FPGA)、Vivado(适用于 Xilinx FPGA)等。了解工具的基本操作流程,包括工程创建、代码编写、综合、布局布线、仿真等环节。 - **仿真工具**:学会使用仿真工具对设计进行功能验证和时序分析,如 ModelSim 等。能够编写测试平台(Testbench)对设计模块进行全面的测试,确保设计的正确性。 #### 芯片知识 - **FPGA 原理**:了解现场可编程门阵列(FPGA)的基本结构和工作原理,包括查找表(LUT)、触发器、布线资源等。掌握 FPGA 的配置方式和编程方法,能够根据设计需求选择合适的 FPGA 芯片。 - **ASIC 设计基础**:如果涉及到专用集成电路(ASIC)设计,需要了解 ASIC 设计的基本流程,包括前端设计、后端设计、物理设计等环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值