当前位置: 首页 > news >正文

c语言----顺序结构

顺序结构的基本概念

  • 定义:顺序结构是C语言程序中最基本的结构,它按照语句的先后顺序依次执行。就像我们日常做事一样,一步一步地按照顺序来完成任务。在C语言程序中,从程序的第一条语句开始,逐句向下执行,直到最后一条语句结束。
  • 示例简单代码段理解顺序结构
#include <stdio.h>
int main() {int a = 5;int b = 3;int sum = a + b;printf("两数之和为:%d\n", sum);return 0;
}
  • 在这个代码段中,首先定义了两个变量ab,并分别初始化为53。接着计算它们的和并存储在变量sum中,最后通过printf函数输出结果。语句的执行顺序是固定的,先完成变量定义和初始化,再进行求和运算,最后输出结果。
    在这里插入图片描述
  1. 语句的顺序执行特点

    • 变量赋值与使用顺序:在顺序结构中,变量必须先定义或赋值,才能在后续的语句中正确使用。例如:
    #include <stdio.h>
    int main() {int result;result = 10 / 2;  // 正确,因为除数和被除数是已知的常量int dividend = 20;int divisor = 4;int new_result = dividend / divisor;  // 正确,因为dividend和divisor已经赋值printf("两个结果分别为:%d和%d\n", result, new_result);return 0;
    }
    
    • 如果变量没有先进行赋值就使用,可能会导致未定义行为。例如,下面的代码是错误的:
    #include <stdio.h>
    int main() {int num;int double_num = num * 2;  // 错误,num未初始化printf("结果:%d\n", double_num);return 0;
    }
    
    • 函数调用顺序:在顺序结构中,函数调用也是按照顺序进行的。例如:
    #include <stdio.h>
    void printMessage() {printf("这是一个消息\n");
    }
    int calculateSum(int a, int b) {return a + b;
    }
    int main() {printMessage();int sum = calculateSum(3, 5);printf("两数之和为:%d\n", sum);return 0;
    }
    
    • 首先调用printMessage函数输出一条消息,然后调用calculateSum函数计算两数之和并输出结果。函数调用的顺序会影响程序的输出和逻辑。
  2. 顺序结构在程序中的重要性和应用场景

    • 简单计算和赋值任务:顺序结构常用于简单的数学计算、变量赋值等操作。比如在计算圆的面积和周长的程序中,先根据用户输入的半径计算面积和周长,然后输出结果,这整个过程可以用顺序结构实现。
    #include <stdio.h>
    #define PI 3.14159
    int main() {double radius;printf("请输入圆的半径:");scanf("%lf", &radius);double area = PI * radius * radius;double circumference = 2 * PI * radius;printf("圆的面积为:%lf,周长为:%lf\n", area, circumference);return 0;
    }
    
    • 初始化操作和数据准备:在复杂的程序开始阶段,顺序结构用于初始化各种数据结构、变量和资源。例如,在一个游戏程序中,可能需要先初始化游戏场景、角色属性等数据,这些操作可以按照顺序依次完成,为后续的游戏逻辑(如游戏循环中的更新和渲染)做好准备。
      在这里插入图片描述

C语言中的输入和输出

以下是对C语言中常见输入输出函数更详细的讲解,并配有相应的代码示例:

1. printf()函数

  • 功能
    printf()函数用于将格式化的数据输出到标准输出设备(通常是显示器)。它可以按照指定的格式控制符来输出不同类型的数据,并且能灵活组合文本与变量值进行输出。

  • 语法格式
    printf("格式控制字符串", 输出列表);

其中,“格式控制字符串”包含普通字符(原样输出的文本内容)和格式控制符(用于指定对应变量的输出格式),“输出列表”则是要输出的变量或表达式,变量的数量和类型要与格式控制符一一对应。

  • 常用格式控制符及示例代码
    • %d(十进制整数输出)
#include <stdio.h>int main() {int num = 10;printf("The number is %d\n", num);return 0;
}

在上述代码中,定义了一个整型变量num并赋值为10printf()函数中的%d格式控制符会将num的值以十进制整数形式输出,运行结果会显示The number is 10

- **`%f`(单精度浮点数输出)**:
#include <stdio.h>int main() {float f = 3.14f;  // 注意单精度浮点数后面要加f后缀printf("The float number is %f\n", f);return 0;
}

这里定义了单精度浮点数f并赋值为3.14,通过%f格式控制符将其输出,运行后会显示The float number is 3.140000(默认会输出小数点后6位)。

- **`%lf`(双精度浮点数输出)**:
#include <stdio.h>int main() {double d = 3.1415926;printf("The double number is %lf\n", d);return 0;
}

定义双精度浮点数d后,使用%lf格式控制符输出它,结果会按双精度的格式显示相应的值,比如The double number is 3.141593(同样默认小数点后6位,具体精度可能因编译器等因素略有不同)。

- **`%c`(字符输出)**:
#include <stdio.h>int main() {char ch = 'A';printf("The character is %c\n", ch);return 0;
}

代码中定义字符变量ch并赋值为'A'%c格式控制符就将该字符输出,显示为The character is A

- **`%s`(字符串输出)**:
#include <stdio.h>int main() {char str[] = "C Language";printf("The string is %s\n", str);return 0;
}

定义字符数组str存储字符串,%s格式控制符会将整个字符串输出,输出结果为The string is C Language

2. scanf()函数

  • 功能
    scanf()函数用于从标准输入设备(通常是键盘)读取用户输入的数据,并按照指定的格式将数据存储到相应的变量中。

  • 语法格式
    scanf("格式控制字符串", 地址列表);

“格式控制字符串”规定了输入数据的格式类型,“地址列表”则是要存储输入数据的变量的地址(通过取地址运算符&获取),且格式控制符的类型和数量必须与地址列表中变量的类型和数量严格匹配。

  • 示例代码及注意事项
    • 读取单个整数
#include <stdio.h>int main() {int num;printf("Please enter an integer: ");scanf("%d", &num);printf("You entered: %d\n", num);return 0;
}

在这个程序中,首先提示用户输入一个整数,然后通过scanf("%d", &num)语句从键盘读取一个十进制整数并存储到num变量中,最后再用printf()函数输出用户输入的整数。运行时,用户输入一个整数(如5)并回车,程序就会显示You entered: 5

- **读取多个整数**:
#include <stdio.h>int main() {int num1, num2;printf("Please enter two integers separated by a space: ");scanf("%d %d", &num1, &num2);printf("You entered: num1 = %d, num2 = %d\n", num1, num2);return 0;
}

这里要读取两个整数,在输入时需要用空格或者回车键来分隔两个数。例如用户输入3 4(中间用空格分隔),程序会将3存储到num14存储到num2,并输出相应的提示信息显示这两个数的值。

- **字符串输入的注意事项(避免缓冲区溢出)**:
#include <stdio.h>int main() {char str[5];printf("Please enter a string (limit to 4 characters): ");scanf("%4s", str);  // 使用%ns格式控制符限制长度printf("You entered: %s\n", str);return 0;
}

定义长度为5的字符数组str,使用%4s格式控制符来限制输入字符串的长度,最多读取4个字符(要留一个位置给字符串结束符\0),避免了因输入过长字符串导致的缓冲区溢出问题。比如用户输入abcd,程序会正常输出You entered: abcd;若输入超过4个字符,多余部分会被舍弃。

3. puts()函数

  • 功能
    puts()函数用于输出一个字符串到标准输出设备,并自动在字符串末尾添加换行符,使输出的字符串独占一行,操作相对简洁,专门用于字符串的输出。

  • 示例代码

#include <stdio.h>int main() {char str[] = "This is a test string";puts(str);return 0;
}

定义了字符数组str存储一个字符串,调用puts(str)函数后,会在屏幕上输出This is a test string并自动换行。

4. gets()函数(不推荐使用)

  • 功能
    gets()函数用于从标准输入读取一个字符串,它会持续读取字符,直到遇到换行符\n为止,然后将读取到的字符序列(包含换行符替换为字符串结束符\0)存储到指定的字符数组中。

  • 示例代码(虽然不推荐,但示例展示功能)

#include <stdio.h>int main() {char str[20];printf("Please enter a string: ");gets(str);puts(str);return 0;
}

在上述代码中,提示用户输入一个字符串,然后通过gets(str)读取用户输入的字符串并存储到str字符数组中,最后用puts(str)输出该字符串。然而,由于gets()函数不检查输入字符串的长度,很容易导致缓冲区溢出,比如定义的str数组长度为20,若用户输入超过19个有效字符(加上字符串结束符\020个字符的空间限制),就会出现缓冲区溢出的安全隐患,所以现代编程中不推荐使用它。

5. fgets()函数

  • 功能
    fgets()函数用于从指定的文件流(可以是标准输入stdin,也可以是其他打开的文件流)读取一个字符串。它会按照指定的读取字符数上限来读取字符,并且如果在读取过程中遇到换行符\n,也会一并读取进来,最后会在读取的字符串末尾添加字符串结束符\0,有效避免了缓冲区溢出问题。

  • 语法格式
    fgets(字符数组名, 读取字符数的上限, 文件流指针);

  • 示例代码(针对标准输入情况)

#include <stdio.h>int main() {char str[20];printf("Please enter a string: ");fgets(str, 20, stdin);printf("You entered: %s", str);return 0;
}

这里定义长度为20的字符数组str,通过fgets(str, 20, stdin)从标准输入读取字符串,最多读取19个字符(要留一个位置给\0),如果输入的字符串较短且包含换行符,换行符也会被读取进来并正常输出,避免了因输入过长字符串导致的缓冲区溢出情况,保证了程序的安全性。

6. putchar()函数

  • 功能
    putchar()函数用于输出一个字符到标准输出设备,功能比较单一,就是简单地将一个字符显示出来,常用于只需要输出单个字符的场景,使用起来比printf("%c", ch)更加简洁。

  • 示例代码

#include <stdio.h>int main() {char ch = 'a';putchar(ch);putchar('\n');  // 输出换行,让显示更清晰,也可使用printf("\n");return 0;
}

定义字符变量ch并赋值为'a',调用putchar(ch)函数就会在屏幕上输出字符a,后面再通过putchar('\n')输出一个换行符,让显示效果更清晰,若不添加换行符,后续的命令提示符等可能紧接着输出的字符显示。

7. getchar()函数

  • 功能
    getchar()函数用于从标准输入设备读取一个字符,程序执行到该函数时会暂停,等待用户输入一个字符,然后将其返回并可存储到相应的变量中,常用于获取用户简单的单个字符输入,比如菜单选择等交互操作。

  • 示例代码

#include <stdio.h>int main() {char ch;printf("Please enter a character: ");ch = getchar();printf("You entered: %c\n", ch);return 0;
}

程序先提示用户输入一个字符,然后通过getchar()函数读取用户输入的字符并存储到ch变量中,最后用printf()函数输出用户输入的字符,比如用户输入b,程序就会显示You entered: b
在这里插入图片描述

C语言输入输出的常见错误有哪些?

  1. scanf()函数相关错误
    • 格式控制符与变量类型不匹配
      • 错误示例
#include <stdio.h>
int main() {int num;scanf("%f", &num);printf("The number is %d\n", num);return 0;
}
 - **解释**:- 这里`scanf()`函数使用`%f`格式控制符来读取数据,但是要存储数据的变量`num`是`int`类型。这会导致存储的数据不符合预期,因为`%f`会按照浮点数的格式读取数据,而`int`变量无法正确存储浮点数格式的数据。- 正确的做法是将`scanf()`函数中的格式控制符改为`%d`,使其与变量类型相匹配。
  • 忘记使用取地址运算符&
    • 错误示例
#include <stdio.h>
int main() {int num;scanf("%d", num);printf("The number is %d\n", num);return 0;
}
 - **解释**:- `scanf()`函数需要变量的地址来存储读取到的数据。在这个例子中,没有使用`&`获取`num`的地址,会导致程序在运行时出现错误,可能会导致程序崩溃或者出现不可预测的行为。- 一定要记住在`scanf()`函数中,对于普通变量(除了数组名本身代表地址外)都要使用`&`来获取地址。
  • 缓冲区溢出(字符串输入)
    • 错误示例
#include <stdio.h>
int main() {char str[5];scanf("%s", str);printf("The string is %s\n", str);return 0;
}
 - **解释**:- 当用户输入的字符串长度超过`4`个字符(因为还要留一个位置给字符串结束符`\0`)时,就会发生缓冲区溢出。这可能会导致程序出现错误,甚至可能会覆盖其他内存区域的数据。- 为了避免这个问题,可以使用`%ns`格式控制符(`n`为指定的长度)来限制读取字符串的长度,比如`scanf("%4s", str);`。
  1. printf()函数相关错误
    • 格式控制符与变量类型不匹配
      • 错误示例
#include <stdio.h>
int main() {float f = 3.14;printf("The number is %d\n", f);return 0;
}
 - **解释**:- 这里`printf()`函数使用`%d`格式控制符来输出浮点数`f`的值。由于`%d`用于输出整数,所以会导致输出结果不符合预期,可能会输出一些奇怪的值。- 正确的做法是将格式控制符改为`%f`,即`printf("The number is %f\n", f);`。
  • 输出列表中的变量数量与格式控制符数量不匹配
    • 错误示例
#include <stdio.h>
int main() {int num1 = 1, num2 = 2;printf("The numbers are %d\n", num1);return 0;
}
 - **解释**:- 定义了两个变量`num1`和`num2`,但是`printf()`函数的格式控制字符串中只有一个`%d`,导致`num2`没有被输出。- 可以修改为`printf("The numbers are %d and %d\n", num1, num2);`,使格式控制符的数量和变量的数量相匹配。
  1. 文件结束符相关错误(输入)
    • 在使用scanf()等输入函数时,没有正确处理文件结束符(EOF)的情况。例如,在循环读取输入数据时,如果没有正确检测EOF,可能会导致程序陷入无限循环或者异常退出。
    • 错误示例(循环读取整数)
#include <stdio.h>
int main() {int num;while (1) {scanf("%d", &num);printf("The number is %d\n", num);}return 0;
}
  • 解释
    • 这个程序会不断地读取整数并输出,但是没有办法正常结束循环。当遇到文件结束符(例如在控制台输入Ctrl + Z(Windows)或者Ctrl + D(Unix/Linux))时,程序应该有相应的机制来退出循环。
    • 正确的做法可以是通过scanf()函数的返回值来判断是否读取到了数据。scanf()函数在成功读取数据时会返回读取到的变量数量,当遇到EOF时会返回EOF(通常定义为-1)。可以修改为:
#include <stdio.h>
int main() {int num;int result;while ((result = scanf("%d", &num))!= EOF) {printf("The number is %d\n", num);}return 0;
}
  1. 混合输入输出导致的错误(缓冲问题)
    • 在混合使用scanf()和其他输入函数(如getchar())时,可能会出现缓冲问题。例如,scanf()函数在读取数据后会在输入缓冲区留下换行符,当紧接着使用getchar()读取字符时,可能会直接读取到这个换行符,而不是用户期望输入的字符。
    • 错误示例
#include <stdio.h>
int main() {int num;char ch;scanf("%d", &num);ch = getchar();printf("The character is %c\n", ch);return 0;
}
  • 解释
    • 假设用户输入一个整数1然后回车,scanf()函数会读取1,但是回车键产生的换行符\n会留在输入缓冲区。当getchar()函数执行时,它会直接读取这个换行符,而不是用户期望输入的另一个字符。
    • 解决这个问题的一种方法是在scanf()getchar()之间添加一个getchar()函数来读取并丢弃这个换行符,例如:
#include <stdio.h>
int main() {int num;char ch;scanf("%d", &num);getchar();  // 读取并丢弃换行符ch = getchar();printf("The character is %c\n", ch);return 0;
}

相关文章:

c语言----顺序结构

顺序结构的基本概念 定义&#xff1a;顺序结构是C语言程序中最基本的结构&#xff0c;它按照语句的先后顺序依次执行。就像我们日常做事一样&#xff0c;一步一步地按照顺序来完成任务。在C语言程序中&#xff0c;从程序的第一条语句开始&#xff0c;逐句向下执行&#xff0c;…...

BERT采用双向训练

BERT采用双向训练 定义 BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型。它在自然语言处理(NLP)领域具有极其重要的地位,由谷歌在2018年提出,能够对文本进行深度的语义理解,从而广泛应用于各种语言相关的任务…...

流程引擎Activiti性能优化方案

流程引擎Activiti性能优化方案 Activiti工作流引擎架构概述 Activiti工作流引擎架构大致分为6层。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8&…...

安卓 文件管理相关功能记录

文件管理细分为图片、视频、音乐、文件四类 目录 权限 静态声明权限 动态检查和声明权限方法 如何开始上述动态申请的流程 提示 图片 获取图片文件的对象列表 展示 删除 视频 获取视频文件的对象列表 获取视频file列表 按日期装载视频文件列表 展示 播放 删除…...

监控视频汇聚融合云平台一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…...

【jvm】主要参数

Java 虚拟机&#xff08;JVM&#xff09;有许多参数用于控制其行为和性能&#xff0c;下面是一些 主要的 JVM 启动参数&#xff0c;这些参数通常分为以下几类&#xff1a; 内存管理相关参数 这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。 -Xms 设置 JVM 启动…...

在Ubuntu中配置mysql,并允许外部访问数据库

在虚拟机中安装 MySQL 并允许外部访问&#xff0c;可以按照以下步骤操作&#xff1a; 1. 更新系统包 首先&#xff0c;确保你的系统是最新的&#xff0c;使用以下命令更新包列表&#xff1a; sudo apt update sudo apt upgrade2. 安装 MySQL Server 安装 MySQL 服务&#x…...

Golang的向前兼容性和toolchain规则,Go1.21.0

在 Go 1.21 中&#xff0c;在工具上新增了两个变化&#xff1a;增强了向前兼容性&#xff1b;工具链管理。 向前兼容性 在以前的版本中&#xff0c;Go 工具链尝试编译依赖于新版本的代码时&#xff0c;可能会遇到兼容性问题。例如&#xff0c;如果你的代码依赖于 Go 1.18 引入…...

如何有效修复ffmpeg.dll错误:一站式解决方案指南

当您遇到提示“ffmpeg.dll文件丢失”的错误时&#xff0c;这可能导致相关的应用程序无法启动或运行异常。本文将详细介绍如何有效地解决ffmpeg.dll文件丢失的问题&#xff0c;确保您的应用程序能够恢复正常运行。 ffmpeg.dll是什么&#xff1f;有哪些功能&#xff1f; ffmpeg.…...

更频繁的 Android SDK 发布:更快的创新、更高的质量和更完善

Android 一直致力于让创新更快地进入用户手中。除了每年的平台发布之外&#xff0c;我们还投资了Project Treble、Mainline、Google Play 服务、每月安全更新和季度发布&#xff0c;为 Pixel Drops 提供支持。 未来&#xff0c;Android 将更频繁地发布 SDK&#xff0c;计划于 …...

远程连接:构建智能家居舒适生活

远程连接技术让智能家居从梦想照进现实&#xff0c;为人们构建了舒适便捷的生活环境。通过家庭网络与各种智能设备的远程连接&#xff0c;用户可以在外出时&#xff0c;使用手机 APP 轻松控制家中的灯光、窗帘、空调、电视等设备。 例如&#xff0c;在炎热的夏天&#xff0c;下…...

Python 爬取网页文字并保存为 txt 文件教程

引言 在网络数据获取的过程中&#xff0c;我们常常需要从网页中提取有用的文字信息。Python 提供了强大的库来帮助我们实现这一目标。本教程将以https://theory.gmw.cn/2023 - 08/31/content_36801268.htm为例&#xff0c;介绍如何使用requests库和BeautifulSoup库爬取网页文字…...

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台

智慧园区作为现代化城市发展的重要组成部分&#xff0c;不仅承载着产业升级的使命&#xff0c;更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化&#xff0c;将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…...

InnoDB 查询成本

1. 单表查询成本 连接查询总成本 IO 成本 CPU 成本对于 InnoDB 存储引擎来说&#xff0c;页是磁盘和内存之间交互的基本单位&#xff0c;设计MySQL的大叔规定读取一个页面花费的成本默认是 1.0&#xff0c;读取以及检测一条记录是否符合搜索条件的成本默认是 0.2。1.0、0.2 …...

C++的高精度减法 分步详解

高精度减法计算原理 在读小学时&#xff0c;我们做减法都采用竖式方法&#xff0c;如图 1 所示。 这样&#xff0c;我们可以写出两个整数相减的算法。 我们就可以用 C 语言来模拟这个竖式减法的过程。我们可以考虑利用 C 的数组来存储对应数据&#xff0c;假设用数组 A 存储被…...

linux cpu 管理

视频教程&#xff1a;ubuntu cpu 管理_哔哩哔哩_bilibili 概述 平均负载&#xff0c;CPU 使用率&#xff0c;CPU上下文 1 平均负载 #查看命令&#xff1a; rootzyb:~# uptime 18:21:47 up 1:09, 2 users, load average: 0.00, 0.00, 0.00 依次则是过去 1 分钟、5 分钟、1…...

大批量URL去重的架构设计(redis-bitmap+redisson)

1. 引言 什么是数据去重&#xff1f; 在大数据处理中&#xff0c;去重是指消除重复数据&#xff0c;只保留唯一的数据记录。 去重的重要性 提高数据处理效率&#xff0c;节省存储空间&#xff0c;提升数据分析的准确性。 常见的去重技术 基于哈希函数、布隆过滤器、位图等方法…...

WebGPU跨平台应用开发

对于 Web 开发人员来说&#xff0c;WebGPU 是一个 Web 图形 API&#xff0c;可提供对 GPU 的统一和快速访问。WebGPU 公开了现代硬件功能&#xff0c;并允许在 GPU 上进行渲染和计算操作&#xff0c;类似于 Direct3D 12、Metal 和 Vulkan。 虽然这是真的&#xff0c;但这个故事…...

Proteus(8.15)仿真下载安装过程(附详细安装过程图)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Proteus是什么&#xff1f; 二、下载链接 三、下安装步骤 1.解压&#xff0c;有键管理员运行 2.点击Next&#xff0c;进行下一步 3.勾选I accept…&#…...

vlan和vlanif

文章目录 1、为什么会有vlan的存在2、vlan(虚拟局域网)1、vlan原理1. 为什么这样划分了2、如何实现不同交换机相同的vlan实现互访呢3、最优化的解决方法&#xff0c;vlan不同交换机4、vlan标签和vlan数据帧 5、vlan实现2、基于vlan的划分方式1、基于接口的vlan划分方式2、基于m…...

Unity开发哪里下载安卓Android-NDK-r21d

google的东西&#xff0c;居然是完全开源的 真的不是很多公司能做到&#xff0c;和那种伪搜索引擎是不同的 到底什么时候google才会开始造车 不过风险很多&#xff0c;最好不要合资&#xff0c;风险更大...

期末速成C++【初识C++】

目录 1.英文单词 2.C的特点 3.C对C语言的补充 3.1命名空间和域操作符 &#x1f387;3.2控制台输入输出 3.3类型增强 3.3.1const常变量 3.3.2const与指针 3.3.3布尔类型与枚举类型 3.4默认参数 &#x1f387;3.5函数重载 &#x1f387;引用 3.6.1引用做函数参数 …...

爬虫案例学习6

获取淘宝商品数据2024-12-18 参考学习&#xff1a; 大佬博客 视频教程 通过搜索发现&#xff0c;数据是通过发送请求过来的&#xff0c;不是静态存在源代码的 所以我们需要请求这个接口获取数据&#xff1a;比如标题&#xff0c;价格&#xff0c;图片等信息 https://h5api.m…...

28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强

A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement 摘要介绍相关工作基于模型的水下图像增强方法&#xff1a;无模型水下图像增强方法&#xff1a;基于深度学习的水下图像增强方法&#xff1a; 论文方法概述像素分布…...

[BJDCTF2020]ZJCTF,不过如此 1

[BJDCTF2020]ZJCTF&#xff0c;不过如此 1 打开实例发现代码审计 需要GET传入text和file参数&#xff0c;然后执行文件包含 text需要读取到I have a dream文本&#xff0c;这边采用data流进行绕过 ?textdata://,I have a dream&filenext.php成功绕过&#xff0c;接下来…...

Hive的in与not in 值中有null的时候注意事项,join where条件等问题

在进行hive SQL查询数据的时候&#xff0c;where条件中使用了in或者not in&#xff0c;但是该值内有null空。 这时&#xff0c;无论是in还是not in&#xff0c;空值都不会进入该条件内&#xff0c;但是使用not in的时候只是希望把自己不想要的数据给排除掉&#xff0c;这时会同…...

大语言模型画图(流程图、框架图)

第一步&#xff1a;向随意大语言模型&#xff0c;描述内容&#xff0c;推荐豆包 豆包 加上下面Prompt 通过Mermaid语法&#xff0c;描述上面流程图 第二步&#xff1a;将生成Mermaid输入流程图生成网站 中文Mermaid - 流程图、关系图在线画图、生成和编辑器...

Oracle创建逻辑目录

Oracle 在执行逻辑备份及还原时&#xff0c;需要用到逻辑目录。 本文就来简单介绍一下逻辑目录相关的操作&#xff0c;希望对大家有所帮助。 ‌1.登录到Oracle数据库‌ 使用具有足够权限的数据库用户登录到Oracle数据库。通常&#xff0c;这需要是管理员账号&#xff0c;如SYS…...

[react] 优雅解决typescript动态获取redux仓库的类型问题

store.getState()是可以获取总仓库的 先拿到函数的类型 再用ReturnType<T> 它是 TypeScript 中的一个内置条件类型&#xff0c;用于获取某个函数类型 T 的返回值类型 代码 // 先拿总仓库的函数类型type StatefuncType typeof store.getState;//再拿函数类型T的返回值类…...

python如何获取excel单元格文字是否加粗

是的&#xff0c;Python 可以获取 Excel 单元格中的文字是否加粗。通常&#xff0c;这需要使用 openpyxl 库&#xff0c;它允许你读取和写入 Excel 文件&#xff08;.xlsx 格式&#xff09;。 以下是一个示例代码&#xff0c;展示如何检查某个单元格的文字是否加粗&#xff1a…...

我的性能优化经验

专业方向&#xff1a;App cpu/memory/gpu/流畅度/响应时间的优化&#xff0c;Anr&#xff0c;Framework CarPowerManagementService模块的&#xff08;STR&#xff09;&#xff0c;从0~1完成性能监控体系搭建&#xff0c;完成3大版本迭代高质量性能交付 响应时间&#xff1a; …...

【Vulkan入门】16-IndexBuffer

TOC 先叨叨 上篇介绍了如何使用VertexBuffer传入顶点信息。两个多星期了我们一直在玩三个点&#xff0c;本篇介绍如何渲染更多的点。 在渲染前考虑一个问题&#xff0c;渲染一个三角形需要三个点&#xff0c;渲染两个相接的三角形需要几个点&#xff1f; 答案是6个点&#xf…...

如何通过HTTP API新建Collection

本文介绍如何通过HTTP API创建一个新的Collection。 前提条件 已创建Cluster&#xff1a;创建Cluster。 已获得API-KEY&#xff1a;API-KEY管理。 Method与URL HTTP POST https://{Endpoint}/v1/collections 使用示例 说明 需要使用您的api-key替换示例中的YOUR_API_KEY、…...

excel 使用vlook up找出两列中不同的内容

当使用 VLOOKUP 函数时&#xff0c;您可以将其用于比较两列的内容。假设您要比较 A 列和 B 列的内容&#xff0c;并将结果显示在 C 列&#xff0c;您可以在 C1 单元格中输入以下公式&#xff1a; 这个公式将在 B 列中的每个单元格中查找是否存在于 A 列中。如果在 A 列中找不到…...

实验16 循环神经网络(3)

目录 1.数据处理 1.1.数据集下载 1.2.数据加载 1.2.1读取数据 1.2.2词表转换 1.2.3封装数据 2. 模型构建 2.1汇聚层算子 2.2模型汇总 3. 模型训练 3.1模型训练 3.2绘制准确率和损失函数图像 4. 模型评价 5. 模型预测 6. 基于Torch的单向LSTM 6.1模型修改-只返…...

Docker 清理命令

Docker 清理命令 删除停止的容器&#xff1a;停止的容器仍然会占用磁盘空间&#xff0c;可以使用以下命令删除所有停止的容器&#xff1a; docker container prune删除无用的网络&#xff1a;Docker 创建的网络&#xff0c;如果不再使用&#xff0c;也可以被清理&#xff1a; d…...

游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别率在91.7%以上

游泳溺水识别数据集&#xff1a; 对9984张原始图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;平均识别率在91.7&#xff05;以上 &#xff0c;可识别泳池或者水库中是否有人溺水。 数据集分割 训练组98&#xff05; 9818图片 有效集&#xff05;…...

【计算机网络】应用层

1. 域名系统 DNS 1.1 域名系统概述 域名系统 DNS (Domain Name System) &#xff1a; 互联网使用的命名系统。 用来把人们使用的机器名字&#xff08;域名&#xff09;转换为 IP 地址。 为互联网的各种网络应用提供了核心服务。 域名采用层次树状结构的命名方法。 DNS 是…...

计算机组成原理的学习笔记(1)

学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记&#xff0c;仅用于学习交流。 一、hello.c如何运行起来&#xff1f; 1. 预处理阶段 在编译 C 程序时&#xff0c;预处理器首先处理代码。预处理器会&#xff1a; 插入头文件&#xff1a;例如&#xff0c…...

挑战一个月基本掌握C++(第六天)了解函数,数字,数组,字符串

一 C函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&#xff0c;但在逻辑上&#xff…...

《薄世宁医学通识50讲》以医学通识为主题,涵盖了医学的多个方面,包括医学哲学、疾病认知、治疗过程、医患关系、公共卫生等

《薄世宁医学通识50讲》是一门由薄世宁医生主讲的医学通识课程&#xff0c;该课程旨在通过深入浅出的方式&#xff0c;向广大听众普及医学知识&#xff0c;提升公众对医学的认知和理解。 晓北斗推荐-薄世宁医学通识 以下是对该课程的详细介绍&#xff1a; 一、课程概述 《薄世…...

Golang囊地鼠gopher

开发知识点-golang 介绍红队专题-Golang工具Fscan简介主要功能ubuntu 安装windows 安装常用命令:项目框架源文件common目录Plugins目录Webscan目录入口点插件扫描类型爆破插件common.ScantypeWebtitle函数webpoc扫描POC 执行CEL-GO 实践CEL指纹识别免杀源码特征参考链接红队专…...

关于如何正确在测试用例中mock静态方法的问题

文章目录 情况一&#xff1a;希望在测试用例中直接执行静态方法的逻辑情况二&#xff1a;不希望在测试用例中执行静态方法的逻辑插桩方法坑1: 报错SubclassByteBuddyMockMaker原因与解决方案坑2&#xff1a;报错 the existing static mock registration must be deregistered原…...

深度学习0-前置知识

一、背景 AI最大&#xff0c;它的目的是通过让机器模仿人类进而超越人类&#xff1b; ML次之&#xff0c;它是AI的一个分支&#xff0c;是让机器模仿人类的一种方法。开发人员用大量数据和算法“训练”机器&#xff0c;让机器自行学会如何执行任务&#xff0c;它的成功取决于…...

web网页前后端交互方式

参考该文&#xff0c; 一、前端通过表单<form>向后端发送数据 前端是通过html中的<form>表单&#xff0c;设置method属性定义发送表单数据的方式是get还是post。 如使用get方式&#xff0c;则提交的数据会在url中显示&#xff1b;如使用post方式&#xff0c;提交…...

电商大数据的几种获取渠道分享!

在当今数字化时代&#xff0c;电商大数据已成为企业决策和运营的重要基础。如何高效地获取、分析和利用这些数据&#xff0c;对于提升电商企业的竞争力至关重要。本文将详细介绍几种电商大数据的获取渠道&#xff0c;帮助电商从业者更好地掌握数据资源&#xff0c;提升业务洞察…...

【图像配准】方法总结

图像配准(Image registration)就是将不同时间、不同传感器&#xff08;成像设备&#xff09;或不同条件下&#xff08;天候、照度、摄像位置和角度等&#xff09;获取的两幅或多幅图像进行匹配、叠加的过程&#xff0c;就是找到1幅图像像素到另1幅图像像素间的空间映射关系它已…...

SSM 超市管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…...

【Yonghong 企业日常问题04】永洪BI可视化工具Linux部署全攻略(部署详解版)

文章目录 一、准备工作二、服务器环境配置2.1 安装JDK2.2 安装字体 三、产品安装四、相关资料 一、准备工作 在进行部署之前需要有以下几项工作准备&#xff1a; 1.产品安装包 2.对应版本的License 3.对应版本的JDK(推荐JDK11&#xff0c;产品v8版本以上需要JDK11以上版本) 4.…...

ubuntu下gdb调试ROS

参考&#xff1a; 使用VsCode进行ROS程序调试_ros vscode 调试-CSDN博客 https://blog.csdn.net/weixin_45031801/article/details/134399664?spm1001.2014.3001.5506 一、调试准备 1.1 CMakeLists改动 注释文件中的 set(CMAKE_BUILD_TYPE "Release") #构建类…...